把中文url进行编码:
echo urlencode('基本资料进度');//%BB%F9%B1%BE%D7%CA%C1%CF%BD%F8%B6%C8
把转码后的url转换回中文:
echo urldecode('%BB%F9%B1%BE%D7%CA%C1%CF%BD%F8%B6%C8');//基本资料进度
一般情况下是正常的,但是浏览器有时候会自动把转码后的url自动转回中文。
这种情况只需要这样做就可以了,
urlencode(iconv("gbk","utf-8","基本资料进度");//把中文gbk编码转为utf8 iconv("utf-8","gbk",urldecode('%BB%F9%B1%BE%D7%CA%C1%CF%BD%F8%B6%C8'));
PHP处理中文转码
PHP中对于URL进行编码,也可以使用 urlencode() 或者 rawurlencode(),二者的区别是前者(urlencode)把空格编码为 '+',而后者(rawurlencode)把空格编码为 '%20',不过应该注意的是,在编码时应该只对部分URL编码,否则URL中的冒号和反斜杠也会被转义。
在解码时,可以使用相应的 urldecode() 和 rawurldecode(),相应地,rawurldecode() 不会把加号('+')解码为空格,而 urldecode() 会。
语法:urlencode($str) rawurlencode($str) urldecode($str) rawurldecode($str)
GBK与UTF-8之间的相互转码:
iconv("gbk","utf-8","php中文待转字符");//把中文gbk编码转为utf8 iconv("utf-8","gbk","php中文待转字符");//把中文utf8编码转为gbk