4. x-www-form-urlencoded
URL中使用的字符必须是来自ASCII码的固定子集。具体的说:
- 大小写字母,数字
- 标点符号:- _ .!~*’(和,)
- 用于特定用途的符号:/ & ? @ # ; $ + = 和 %
- 其他所有字符均需要用%转义,特定用途的符号不做特定用途用时也要转义
URL类不自动编码解码,但是由getPath和toExternalForm时候回出现错误。
java提供了URLEncoder和URLDecoder,可以对这种格式的字符串编解码
4.1 URLEncoder
String = encoded = URLEncoder.encode("This*String*has*asterisks","UTF-8");
- 所有需要编码的字符会转换为%序列。
- 但是注意它会把!~’()也进行转换,但是通常浏览器会适度的处理这些问题。但是也应该注意。
- 这个方法对/&=和:进行了编码。所以必须逐部分的对URL编码。而不是整体编码。
4.2 URLDecoder
执行解码操作。
- 由于对非转义字符不处理,因此可以直接整体调用
- -