.htaccess文件
RewriteRule ^(.*).html$ index.php?id=$1
对于一个网址http://www.zzvips.com/我是谁.html 我们将会遇到以下4种情况
http://www.zzvips.com/我是谁.html (这里的”我是谁”是GB2312编码)
IE打开,接收到的id是utf8编码的”我是谁”
FireFox打开,接收不到id值,并且Apache会出现403错误。
这里需要着重说明一下,因为FireFox会将”我是谁”自动urlencode,如果你的页面链接中”我是谁”的编码是gb2312就会出错。
http://www.zzvips.com/我是谁.html (这里的”我是谁”是UTF8编码)
IE和FireFox打开,都可以接收到id值
http://www.zzvips.com/%CE%D2%CA%C7%CB%AD.html (这里是urlencode后的”我是谁”GB2312编码)
IE和FireFox打开,都接收不到id值,并且Apache会出现403错误。
http://www.zzvips.com/%E6%88%91%E6%98%AF%E8%B0%81.html (这里是urlencode后的”我是谁”UTF8编码)
IE和FireFox打开,都可以接收到id值
说明:
“我是谁”的UTF8编码urlencode后为 %E6%88%91%E6%98%AF%E8%B0%81
“我是谁”的GB2312编码urlencode后为 %CE%D2%CA%C7%CB%AD
结论:
Rewrite只接收UTF8
IE和FireFox对中文URL的编码不同,要注意.
这也是为什么上面的例子接收不到id值,并且出403错误.
为了避免这种情况出现,页面中的链接最好是UTF8编码的,如果是GB2312,一定会有问题.
最好的习惯是UTF8编码并urlencode,也就是上文的例4.
相关文章
- python与sqlite处理中文字符时出现的编码错误问题解决
- c++输出字符数组乱码_C++字符编码问题探究和中文乱码的产生
- mysql5.5.25 中文问题 没有及配置问题 修改默认编码方式
- IOS调起H5中文参数乱码问题(不是简单编码)
- Python 编码问题:‘ascii‘ codec can‘t encode characters in position 的解决方案(中文乱码终极解决方案)
- Java中字符编码问题和中文占几个字节的问题(ASCII Unicode UTF-8 )
- python 处理中文遇到的编码问题总结 以及 字符str的编码如何判断
- IntelliJ IDEA 设置编码为utf-8编码(各种中文乱码问题解决)
- PHP使用urlencode对中文编码时空格、加号的问题
- python 数据写入json文件时中文显示Unicode编码问题