45 lines
1.2 KiB
Java
45 lines
1.2 KiB
Java
package ovh.alexisdelhaie.endpoint.url;
|
|
|
|
public enum SpecialChar {
|
|
SPACE(' ', "%20"),
|
|
HASH('#', "%23"),
|
|
LEFT_BRACE('{', "%7B"),
|
|
RIGHT_BRACE('}', "%7D"),
|
|
LEFT_BRACKET('[', "%5B"),
|
|
RIGHT_BRACKET(']', "%5D"),
|
|
AT('@', "%40"),
|
|
CIRCUMFLEX('^', "%5E"),
|
|
SLASH('/', "%2F"),
|
|
BACK_SLASH('\\', "%5C"),
|
|
DOLLAR('$', "%24"),
|
|
LEFT_CHEVRON('<', "%3C"),
|
|
RIGHT_CHEVRON('>', "%3E"),
|
|
PIPE('|', "%7C"),
|
|
TILDE('~', "%7E"),
|
|
BACK_QUOTE('`', "%60"),
|
|
INTERROGATION('?', "%3F"),
|
|
EQUAL('=', "%3D"),
|
|
CR('\r', "%0D"),
|
|
LF('\n', "%0A"),
|
|
SEMICOLON(';', "%3B"),
|
|
COLON(':', "%3A"),
|
|
AND('&', "%26");
|
|
|
|
private char decodedChar;
|
|
private String encodedChar;
|
|
|
|
SpecialChar(char decodedChar, String encodedChar) {
|
|
this.decodedChar = decodedChar;
|
|
this.encodedChar = encodedChar;
|
|
}
|
|
|
|
public static String encodeString(String decodedString) {
|
|
String encodedString = decodedString.replace("%", "%25");
|
|
for (SpecialChar v : SpecialChar.values()) {
|
|
encodedString = encodedString.replace(Character.toString(v.decodedChar), v.encodedChar);
|
|
}
|
|
return encodedString;
|
|
}
|
|
|
|
}
|