URL decoding: Difference between revisions

Line 799:
 
=={{header|Java}}==
Java offers a ''URLDecoder'' and ''URLEncoder'' for this specific task.
 
<syntaxhighlight lang="java">import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
 
}</syntaxhighlight>
public class Main
<syntaxhighlight lang="java">
{
URLDecoder.decode(string, StandardCharsets.UTF_8)
public static void main(String[] args) throws UnsupportedEncodingException
</syntaxhighlight>
{
Alternately, you could use a regular expression capture
String encoded = "http%3A%2F%2Ffoo%20bar%2F";
<syntaxhighlight lang="java">
String normal = URLDecoder.decode(encoded, "utf-8");
import java.util.regex.Matcher;
System.out.println(normal);
import java.util.regex.Pattern;
</syntaxhighlight>
<syntaxhighlight lang="java">
String decode(String string) {
Pattern pattern = Pattern.compile("%([A-Za-z\\d]{2})");
Matcher matcher = pattern.matcher(string);
StringBuilder decoded = new StringBuilder(string);
char character;
int start, end, offset = 0;
while (matcher.find()) {
character = (char) Integer.parseInt(matcher.group(1), 16);
/* offset the matched index since were adjusting the string */
start = matcher.start() - offset;
end = matcher.end() - offset;
decoded.replace(start, end, String.valueOf(character));
offset += 2;
}
return decoded.toString();
}</syntaxhighlight>
}
 
</syntaxhighlight>
{{out}}
<pre>
<pre>http://foo bar/</pre>
google.com/search?q=`Abdu'l-Bahá
</pre>
 
=={{header|JavaScript}}==
118

edits