URL encoding: Difference between revisions
→{{header|Java}}
(→{{header|AutoHotkey}}: updated code to remove the need to use SetFormat) |
|||
Line 782:
=={{header|Java}}==
Java includes the ''URLEncoder'' and ''URLDecoder'' for this specific task.<br /><br />
The
<syntaxhighlight lang="java">
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
<syntaxhighlight lang="java">
URLEncoder.encode("http://foo bar/", StandardCharsets.UTF_8)
</syntaxhighlight>
{▼
Alternately, you could implement this with a basic for-loop.
<syntaxhighlight lang="java">
String encode(String string) {
StringBuilder encoded = new StringBuilder();
for (char character : string.toCharArray()) {
switch (character) {
/* rfc3986 and html5 */
case '-', '.', '_', '~', '*' -> encoded.append(character);
default -> {
if (alphanumeric(character))
encoded.append(character);
else {
encoded.append("%");
encoded.append("%02x".formatted((int) character));
}
}
}
return encoded.toString();
▲}</syntaxhighlight>
}
boolean alphanumeric(char character) {
return (character >= 'A' && character <= 'Z')
|| (character >= 'a' && character <= 'z')
|| (character >= '0' && character <= '9');
}
</syntaxhighlight>
<pre>
http%3a%2f%2ffoo%20bar%2f
</pre>
=={{header|JavaScript}}==
|