tbel: encodeURI() decodeURI() comments 1
This commit is contained in:
parent
10aa7ae795
commit
332c676317
@ -52,26 +52,26 @@ public class TbUtils {
|
||||
|
||||
private static final byte[] HEX_ARRAY = "0123456789ABCDEF".getBytes(StandardCharsets.US_ASCII);
|
||||
|
||||
private static final LinkedHashMap<String, String> enCodeMdn = new LinkedHashMap<>();
|
||||
private static final LinkedHashMap<String, String> mdnEncodingReplacements = new LinkedHashMap<>();
|
||||
|
||||
static {
|
||||
enCodeMdn.put("\\+", "%20");
|
||||
enCodeMdn.put("%21", "!");
|
||||
enCodeMdn.put("%27", "'");
|
||||
enCodeMdn.put("%28", "\\(");
|
||||
enCodeMdn.put("%29", "\\)");
|
||||
enCodeMdn.put("%7E", "~");
|
||||
enCodeMdn.put("%3B", ";");
|
||||
enCodeMdn.put("%2C", ",");
|
||||
enCodeMdn.put("%2F", "/");
|
||||
enCodeMdn.put("%3F", "\\?");
|
||||
enCodeMdn.put("%3A", ":");
|
||||
enCodeMdn.put("%40", "@");
|
||||
enCodeMdn.put("%26", "&");
|
||||
enCodeMdn.put("%3D", "=");
|
||||
enCodeMdn.put("%2B", "\\+");
|
||||
enCodeMdn.put("%24", Matcher.quoteReplacement("$"));
|
||||
enCodeMdn.put("%23", "#");
|
||||
mdnEncodingReplacements.put("\\+", "%20");
|
||||
mdnEncodingReplacements.put("%21", "!");
|
||||
mdnEncodingReplacements.put("%27", "'");
|
||||
mdnEncodingReplacements.put("%28", "\\(");
|
||||
mdnEncodingReplacements.put("%29", "\\)");
|
||||
mdnEncodingReplacements.put("%7E", "~");
|
||||
mdnEncodingReplacements.put("%3B", ";");
|
||||
mdnEncodingReplacements.put("%2C", ",");
|
||||
mdnEncodingReplacements.put("%2F", "/");
|
||||
mdnEncodingReplacements.put("%3F", "\\?");
|
||||
mdnEncodingReplacements.put("%3A", ":");
|
||||
mdnEncodingReplacements.put("%40", "@");
|
||||
mdnEncodingReplacements.put("%26", "&");
|
||||
mdnEncodingReplacements.put("%3D", "=");
|
||||
mdnEncodingReplacements.put("%2B", "\\+");
|
||||
mdnEncodingReplacements.put("%24", Matcher.quoteReplacement("$"));
|
||||
mdnEncodingReplacements.put("%23", "#");
|
||||
}
|
||||
|
||||
public static void register(ParserConfiguration parserConfig) throws Exception {
|
||||
@ -649,18 +649,18 @@ public class TbUtils {
|
||||
public static String encodeURI(String uri) {
|
||||
String encoded = URLEncoder.encode(uri, StandardCharsets.UTF_8);
|
||||
Optional<String> encodedMdnOpt = Optional.of(encoded);
|
||||
for (var entry : enCodeMdn.entrySet()) {
|
||||
for (var entry : mdnEncodingReplacements.entrySet()) {
|
||||
encodedMdnOpt = Optional.of(encodedMdnOpt.get().replaceAll(entry.getKey(), entry.getValue()));
|
||||
}
|
||||
return encodedMdnOpt.orElse(null);
|
||||
}
|
||||
|
||||
public static String decodeURI(String uri) {
|
||||
ArrayList<String> alKeys = new ArrayList<>(enCodeMdn.keySet());
|
||||
Collections.reverse(alKeys);
|
||||
ArrayList<String> allKeys = new ArrayList<>(mdnEncodingReplacements.keySet());
|
||||
Collections.reverse(allKeys);
|
||||
Optional<String> encodedMdnOpt = Optional.of(uri);
|
||||
for (String strKey : alKeys) {
|
||||
encodedMdnOpt = Optional.of(encodedMdnOpt.get().replaceAll(enCodeMdn.get(strKey), strKey));
|
||||
for (String strKey : allKeys) {
|
||||
encodedMdnOpt = Optional.of(encodedMdnOpt.get().replaceAll(mdnEncodingReplacements.get(strKey), strKey));
|
||||
}
|
||||
return encodedMdnOpt.map(s -> URLDecoder.decode(s, StandardCharsets.UTF_8)).orElse(null);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user