Add support for URL encode/decode methods added in Java 10.

This commit is contained in:
Dennis Bijlsma 2020-01-05 10:42:00 +01:00 committed by Alexey Andreev
parent 9daba6e5a6
commit cbbf7b5298

View File

@ -51,18 +51,11 @@ public final class TURLEncoder {
}
return buf.toString();
}
public static String encode(String s, String enc) throws UnsupportedEncodingException {
public static String encode(String s, Charset enc) {
Objects.requireNonNull(s);
Objects.requireNonNull(enc);
// check for UnsupportedEncodingException
try {
Charset.forName(enc);
} catch (UnsupportedCharsetException e) {
throw new UnsupportedEncodingException(enc);
}
// Guess a bit bigger for encoded form
StringBuffer buf = new StringBuffer(s.length() + 16);
int start = -1;
@ -91,7 +84,19 @@ public final class TURLEncoder {
return buf.toString();
}
private static void convert(String s, StringBuffer buf, String enc) throws UnsupportedEncodingException {
public static String encode(String s, String enc) throws UnsupportedEncodingException {
Objects.requireNonNull(s);
Objects.requireNonNull(enc);
// check for UnsupportedEncodingException
try {
return encode(s, Charset.forName(enc));
} catch (UnsupportedCharsetException e) {
throw new UnsupportedEncodingException(enc);
}
}
private static void convert(String s, StringBuffer buf, Charset enc) {
byte[] bytes = s.getBytes(enc);
for (int j = 0; j < bytes.length; j++) {
buf.append('%');