㈠ urlencode进行转换后 为什么空格是+号 不是%20
可以看看php的函数urlencode() 和 rawurlencode()函数的实现方式,第二个是raw转换,会把对应的空格更换成 %20 的编码方式。
%20 是空格的 URL 字符编码。
[ol][*] [*]$new_true_url = iconv('gbk','utf-8',$true_url);
[*]$down_true_url =??urlencode($new_true_url);
[*]$down_true_url =str_replace("%3A%2F%2F", "://", $down_tr。
使用编码函数就可以将特定字符转换成规定的字符编码,包括空格等。解码函数功能刚好相反。参数是需要处理的字符串,返回值是处理好的字符串。不过这些函数作用都有差异,详细内容可以自己查看资料。
(1)php加号空格扩展阅读:
编码原理:
将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。
比如:
空格ASCII码是32,对应16进制是20,那么urlencode编码结果是:%20,但在新标准中空格对应的是+,见RFC-1738
比如:
中ASCII码是-10544,对应的16进制是D6D0,那么urlencode编码结果是:%D6%D0。