URL encoding: Difference between revisions

(→‎{{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 built-in ''URLEncoder'' inwill Javaconvert converts thea space " " intoto a plus-sign "'+"' insteadrather ofthan "'%20":'.
<syntaxhighlight lang="java">import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
 
}</syntaxhighlight>
public class Main
<syntaxhighlight lang="java">
{
URLEncoder.encode("http://foo bar/", StandardCharsets.UTF_8)
public static void main(String[] args) throws UnsupportedEncodingException
</syntaxhighlight>
{
Alternately, you could implement this with a basic for-loop.
String normal = "http://foo bar/";
<syntaxhighlight lang="java">
String encoded = URLEncoder.encode(normal, "utf-8");
String encode(String string) {
System.out.println(encoded);
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) {
{{out}}
return (character >= 'A' && character <= 'Z')
<pre>http%3A%2F%2Ffoo+bar%2F</pre>
|| (character >= 'a' && character <= 'z')
|| (character >= '0' && character <= '9');
}
</syntaxhighlight>
<pre>
http%3a%2f%2ffoo%20bar%2f
</pre>
 
=={{header|JavaScript}}==
118

edits