URL
编码的最新规范是:RFC3986
RFC3986给出的URL编码规则如下:
'a' ~ 'z'
、'A' ~ 'Z'
、'0' ~ '9'
、.
、*
、-
、_
都不被重新编码,维持原值。' '
被转换为加号+
。%xy
格式的由3个字符组成的字符串,xy
编码与Base16完全一样。注意:有些字符可以不进行编码的,比如!
、~
,所以,RFC3986描述的URL编码规则有一些建议性的东西,不是一个确定的算法。所以,千万不要用URL编码之后的字符串做是否相等的比较,因为,你如果不能确切的知道, 你所使用的URL编码的库对哪些字符进行了编码的话,很有可能出现不想等的情况。
URL
编码不是一个确定性的编码,所以,在使用各种语言自带的库中的URL
编码的时候要特别注意: 您使用的URL
编码方法到底对哪些字符做了编码,对哪些字符没有做编码。