回复讨论(解决方案) urlencode .可用urldecode出来。
显然是自定义函数 $s = join('%', array_merge(array(''), str_split(bin2hex('-'), 2)));echo $s;
%2d
urlencode .可用urldecode出来。
我也觉得是这样,但是试了这两个函数,输入还都是原来的-
echo urlencode('-');echo urldecode('-');
显示的都是--
rfc 3986:http://www.faqs.org/rfcs/rfc3986.html
中提到:unreserved = alpha / digit / - / . / _ / ~
这些非保留字符,在urlencode时,应该使用原有的字符。也就是:
urlencode(-),
urlencode(字母),
urlencode(数字)
urlencode(.)
urlencode(_)
urlencode(~)都是原来的字符。( 在 php 5.3.0 之前,rawurlencode 根据 » rfc 1738 来编码波浪线(~)。 )
可能这种解释不一定准确。、
但是urldecode(%2d) 确实是“-”
注意urlencode和rawurlencode的编码标准并不同。
网上搜索一下,多呢
