]> source.dussan.org Git - aspectj.git/commitdiff
Bugfix: AspectJ installer extracts text files as US-ASCII
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Fri, 5 Jan 2024 07:35:24 +0000 (14:35 +0700)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Sat, 6 Jan 2024 09:09:11 +0000 (10:09 +0100)
When extracting text or HTML files, special characters like German
umlauts "ÄÖÜäöüß" or copyright symbol "©" were destroyed while unpacking
the installer archive. As our files in Git SCM are all UTF-8, the
installer now also uses UTF-8 to read and write text files.

Fixes #270.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
build/src/main/java/$installer$/org/aspectj/Main.java

index d11ba8f6b5e032c7cd296be0f2e852e0f7b9bd71..06825831121d9e7c857c6ecc7cd7a92742ba35dc 100644 (file)
@@ -67,6 +67,8 @@ import javax.swing.border.Border;
 import javax.swing.border.CompoundBorder;
 import javax.swing.border.EmptyBorder;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
+
 /**
  * Invoke the Installer gui. There are two ways to run without GUI by passing parameters to main:
  * <ol>
@@ -678,7 +680,7 @@ abstract class WizardPane {
        }
 
        public static String stringFromStream(InputStream stream) throws IOException {
-               BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "US-ASCII"));
+               BufferedReader reader = new BufferedReader(new InputStreamReader(stream, UTF_8));
 
                StringBuilder ret = new StringBuilder();
                int data;
@@ -1345,7 +1347,7 @@ class CurrentJarUnpacker {
 
        public void writeTextStream(InputStream zis, File outputFile) throws IOException {
                BufferedWriter os = new BufferedWriter(new FileWriter(outputFile));
-               BufferedReader r = new BufferedReader(new InputStreamReader(zis, "US-ASCII"));
+               BufferedReader r = new BufferedReader(new InputStreamReader(zis, UTF_8));
 
                String l;
                while ((l = r.readLine()) != null) {
@@ -1386,7 +1388,7 @@ class CurrentJarUnpacker {
                }
 
 //             InputStream stream = url.openStream();
-//             BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "US-ASCII"));
+//             BufferedReader reader = new BufferedReader(new InputStreamReader(stream, UTF_8));
 //             String line = reader.readLine();
 //             installPane.nBytes = Integer.parseInt(line);
 //
@@ -1727,7 +1729,7 @@ class JarUnpacker {
 
        public void writeTextStream(ZipInputStream zis, File outputFile) throws IOException {
                BufferedWriter os = new BufferedWriter(new FileWriter(outputFile));
-               BufferedReader r = new BufferedReader(new InputStreamReader(zis, "US-ASCII"));
+               BufferedReader r = new BufferedReader(new InputStreamReader(zis, UTF_8));
 
                String l;
                while ((l = r.readLine()) != null) {