在URI的规范中定义了一些保留字符,如":","/","?","&","=","@","%"等字符,在URI中都有他的作用。如果要在请求参数上表达URI的这写保留字符,必须在%字符后以十六进制的数值表示,来表示该字符的八个字符数值。
例如,":"字符用十六进制来表示为3A,所以必须使用%3A来表示,"/"字符用十六进制来表示为2F,所以必须使用%2F来表示"/"字符。
如何知道某个字符的URL编码呢?其实就是URI规范中的百分比编码,在java中可以使用java.net.URLEncoder的静态方法encode来获得:如下
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class URLEncode {
public static void main(String[] args) {
//百分比编码:获取某个字符的URL编码
String text;
try {
text = URLEncoder.encode("http://baidu.com", "iso-8859-1");
System.out.println(text);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
输出结果:http%3A%2F%2Fbaidu.com