php代码用 urlencode/urldecode, "+"在urldecode时会被转成空格,看代码如下
$str = "QQ:¥¥++";
echo "ori=$str";
echo "<br/>";
echo "encode=".urlencode($str);
echo "|<br/>";
echo "decode=".urldecode($str);
echo "|<br/>";die();
ori=QQ:¥¥++
encode=QQ%3A%A3%A4%A3%A4%2B%2B|
decode=QQ:¥¥ |
声明只有content-type为application/x-www-form-urlencoded时才会对+做转义。
如果想偷懒可以直接用 rawurlencode/rawurldecode
也就是php又搞了rawurlencode和rawurldecode把标准实现了。。。。
(参考来源:http://www.jb51.net/article/29254.htm)
还有个问题:如果用url传递中文参数,请都使用encode后再传递,不然 IE 下通过_GET取到的数据可能会出问题,其他Firefox / 360 之类是正常的