Make loader Windows compatible

The encoding of UTF-8 (et al.) chars in the
JarUrlConnection has to be made explicit, otherwise
Wdinows apparently does not pick the default(?).

Fixes gh-711, Fixes gh-753
This commit is contained in:
Artem Bilan 2014-04-30 11:56:04 +03:00 committed by Phillip Webb
parent f81c01d490
commit 471e6af2af

View File

@ -20,9 +20,9 @@ import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.jar.Manifest;
/**
@ -169,7 +169,6 @@ class JarURLConnection extends java.net.JarURLConnection {
if ((length == 0) || (source.indexOf('%') < 0)) {
return source;
}
try {
ByteArrayOutputStream bos = new ByteArrayOutputStream(length);
for (int i = 0; i < length; i++) {
int ch = source.charAt(i);
@ -183,11 +182,8 @@ class JarURLConnection extends java.net.JarURLConnection {
}
bos.write(ch);
}
return new String(bos.toByteArray(), "UTF-8");
}
catch (UnsupportedEncodingException ex) {
throw new IllegalStateException(ex);
}
return new String(bos.toByteArray(), Charset.defaultCharset());
}
private static char decodeEscapeSequence(String source, int i) {