htaccess Rewrite中文编码问题解决方法
程序员文章站
2022-05-14 13:21:06
.htaccess文件 rewriterule ^(.*).html$ index.php?id=$1 对于一个网址//www.jb51.net/我是谁.html 我们将会...
.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.
上一篇: 前端性能优化总结
下一篇: 各国货币json文件
推荐阅读
-
设置MySql5.5数据库的字符编码为UTF8,解决中文乱码问题_MySQL
-
Python连接mssql数据库编码问题解决方法
-
windows internet explorer Windows下利用Gvim写PHP产生中文乱码问题解决方法
-
Windows下利用Gvim写PHP产生中文乱码问题解决方法
-
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
-
解决3.01版的jquery.form.js中文乱码问题的解决方法_jquery
-
php substr截断中文半个汉字乱码问题的解决方法
-
Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题)_MySQL
-
.htaccess rewrite规则有关问题
-
Python2.x版本中基本的中文编码问题解决