Browse Source

Bugfix: AspectJ installer extracts text files as US-ASCII

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>
tags/V1_9_21_1
Alexander Kriegisch 3 months ago
parent
commit
a8eab70a29
1 changed files with 6 additions and 4 deletions
  1. 6
    4
      build/src/main/java/$installer$/org/aspectj/Main.java

+ 6
- 4
build/src/main/java/$installer$/org/aspectj/Main.java View 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) {

Loading…
Cancel
Save