echo urlencode('书生')
得到 %CA%E9%C9%FA
是因为这个'书生'是gb2312编码的echo urlencode(substr($_SERVER[PATH_INFO],1));
得到 %E4%B9%A6%E7%94%9F
是因为 test.php/书生 中的'书生'是utf-8编码的ie浏览器有一个默认的选项——总是用utf-8编码发送
可能就是这个原因
得到 %CA%E9%C9%FA
是因为这个'书生'是gb2312编码的echo urlencode(substr($_SERVER[PATH_INFO],1));
得到 %E4%B9%A6%E7%94%9F
是因为 test.php/书生 中的'书生'是utf-8编码的ie浏览器有一个默认的选项——总是用utf-8编码发送
可能就是这个原因
CAE9 书
C9FA 生
=UTF-8
%E4%B9%A6%E7%94%9Furlencode只是将字串按位反ascii码再加上%
书在gb中是由CA E9 这两个ascii字符组成的。
<?
echo urlencode('书生').'<br/>';
echo substr($_SERVER[PATH_INFO],1).'<br/>';
echo urlencode(substr($_SERVER[PATH_INFO],1));
?>
书生
%E4%B9%A6%E7%94%9F说明支持中文,我的是Php5.05+winxp