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
pull/780/head
Artem Bilan 11 years ago committed by Phillip Webb
parent f81c01d490
commit 471e6af2af

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

Loading…
Cancel
Save