使用Java预定义java.net.URLEncoder和java.net.URLDecoder用于URL转码和解码。
一、URL编码 {#title-1}
URL编码常用于查询字符串或表单参数,将字符数据编码为可在URL中安全传输的格式。
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class Main {
public static void main(String[] args) {
String url = "http://example.com/query?q=";
String query = "Java URL Encoding";
try {
String encodedQuery = URLEncoder.encode(query, "UTF-8");
System.out.println("Encoded URL : " + url + encodedQuery);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
使用URLEncoder.encode()URL编码方法,第一个参数是需要编码的字符串,第二个参数是字符集。
二、URL解码 {#title-2}
URL解码是URL编码的逆向过程,用来将URL编码后的字符串还原为原始字符串。
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
public class Main {
public static void main(String[] args) {
String url = "http%3A%2F%2Fexample.com%2Fquery%3Fq%3DJava+URL+Encoding";
try {
String decodedURL = URLDecoder.decode(url, "UTF-8");
System.out.println("Decoded URL : " + decodedURL);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
使用URLDecoder.decode()URL解码方法,第一个参数是需要解码的字符串,第二个参数是字符集。
三、注意事项 {#title-3}
1、URL编码只能用于URL查询字符串部分,在其它部分,如路径部分,可能会导致错误。
2、在编码过程中,字符集必须与解码过程中的字符集一致,否则可能无法正确解码。
3、当使用URLEncoder和URLDecoder时,如果没有try...catch...,那会被抛出UnsupportedEncodingException的错误。