URL Rewrite中包含中文出现乱码

2008-12-21    分类:知识库    6人评论1,837 views

这次在网站的URL静态化中需要加入一个包含中文的参数,比如:/list-103.类别.html

中文部分就在类别处,由于我只是将URL中需要的部分用正则表达式提取出来然后Rewrite到响应的页面即可,所以不存在匹配中文这种稍微有点复杂的正则表达式。

不过这条规则使用以后,重写后显示的页面出现了问题,于是加了个echo显示传入的“类别”。

发现是乱码,然而如果我在浏览器中直接输入重写前的网址,中文是能够显示的,因此这里在URL中可能存在编码不统一的问题。

URL中其实也是有编码的,百度和谷歌识别出来的URL就是用了不同的编码,Google是UTF8的,而百度是GB2312的,所以对于那些URL中包含中文的朋友来说的确是挺痛苦的,鱼与熊掌不可兼得。

由于这次我使用的是GBK编码,所以URL应该也是属于GB2312的,然而经过资料查阅,发现不管是Apache还是ISAPI_Rewrite,URL均识别的是UTF8编码的,因此,这里就出现了乱码。

需要说的是,这里使用UNICODE过的URL也是没用的,因为编码不同,UNICODE出来的URL地址也是不同的,所以最终的解决办法,也只有是将网页转换成UTF8编码了。

转载请注明:摩登坊 » URL Rewrite中包含中文出现乱码

继续查看有关 的文章

6访客评论

  1. 你好,我是和你交换链接的蓝色的信封,就是你现在友情链接里面的苹果信息港,我的域名pingguo.info过期了,现在换了域名,www.macapple.cn,看到了,麻烦帮忙更新下url,谢谢。

    苹果12-23 20:32
  2. 已更新~

    Steve Luo12-31 16:55
  3. 怪不得我调试了半天都不成功,原来是要UTF8编码,这下头疼了。

    找工作01-14 21:24
  4. 所以我只能改用原来的URL了。。郁闷呀

    Steve Luo01-20 13:25
  5. isapi-rewrite 3.0 不会出现中文url乱码,我试过

    狼人12-25 00:11
  6. 我全部页面都是UTF8的,在iis 上还是乱码。即便中文进行了url编码

    小菜鸟06-26 13:31

我来说说

*

*

取消