htaccess Rewrite中文编码问题解决方法
2008-10-03 20:30
585 查看
.htaccess文件
RewriteRule ^(.*).html$ index.php?id=$1
对于一个网址//www.jb51.net/我是谁.html 我们将会遇到以下4种情况
//www.jb51.net/我是谁.html (这里的”我是谁”是GB2312编码)
IE打开,接收到的id是utf8编码的”我是谁”
FireFox打开,接收不到id值,并且Apache会出现403错误。
这里需要着重说明一下,因为FireFox会将”我是谁”自动urlencode,如果你的页面链接中”我是谁”的编码是gb2312就会出错。
//www.jb51.net/我是谁.html (这里的”我是谁”是UTF8编码)
IE和FireFox打开,都可以接收到id值
//www.jb51.net/%CE%D2%CA%C7%CB%AD.html (这里是urlencode后的”我是谁”GB2312编码)
IE和FireFox打开,都接收不到id值,并且Apache会出现403错误。
//www.jb51.net/%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.
RewriteRule ^(.*).html$ index.php?id=$1
对于一个网址//www.jb51.net/我是谁.html 我们将会遇到以下4种情况
//www.jb51.net/我是谁.html (这里的”我是谁”是GB2312编码)
IE打开,接收到的id是utf8编码的”我是谁”
FireFox打开,接收不到id值,并且Apache会出现403错误。
这里需要着重说明一下,因为FireFox会将”我是谁”自动urlencode,如果你的页面链接中”我是谁”的编码是gb2312就会出错。
//www.jb51.net/我是谁.html (这里的”我是谁”是UTF8编码)
IE和FireFox打开,都可以接收到id值
//www.jb51.net/%CE%D2%CA%C7%CB%AD.html (这里是urlencode后的”我是谁”GB2312编码)
IE和FireFox打开,都接收不到id值,并且Apache会出现403错误。
//www.jb51.net/%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.
您可能感兴趣的文章:
相关文章推荐
- 深入Java中文编码乱码问题及最优解决方法
- 【python】中文的输出,打印,文件编码问题解决方法
- 深入Java中文编码乱码问题及最优解决方法
- java和jsp中文编码问题的解决方法(ISO8859_1、GBK、UTF-8)
- qt creator修改程序编码(解决中文乱码问题)的方法
- c/c++中涉及中文编码问题的解决方法
- PHP 页面编码声明方法详解(header或meta,解决中文乱码问题)
- MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结
- 记录使用python时遇到的中文 编码问题与解决方法
- 程序输出urf-8编码的xml文件中文(汉字)乱码问题解决方法
- j2ee中文编码问题的解决方法(ISO8859_1、GBK、UTF-8)
- 中文乱码--MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总
- ruby中解决mysql中文输入编码问题的简单方法。
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- as3中的socket的readUTFBytes方法,它的UTF指的是UTF-8,只要服务器采用UTF-8编码,传输和修改中文的问题就能解决
- MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结
- [ASP/PHP/JSP]MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结
- PHP 页面编码声明方法详解(header或meta,解决中文乱码问题)
- 关于hibernate和jsp,以及中文编码问题的传统解决方法
- (转)MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结