当前位置: 首页 > 编程笔记 >

iis伪静态中文url出现乱码的解决办法

仲孙毅
2023-03-14
本文向大家介绍iis伪静态中文url出现乱码的解决办法,包括了iis伪静态中文url出现乱码的解决办法的使用技巧和注意事项,需要的朋友参考一下

首先要看下你安装的是IIS rewrite_2.0还是ISAPI_Rewrite 3.x的伪静态插件。

如果你安装的是IIS rewrite_2.0的话,传递的参数都是UTF-8格式的,如果你网站是GBK的就会出现中文连接乱码。

解决办法:

rewrite_2.0规则写法:

RewriteRule ^news_list_([0-9a-zA-Z\u4e00-\u9fa5]+)\.html$ news_list.asp?BigClassName=$1 [L]

比如页面传递参数是 zhongwen:

Session.CodePage = 65001
BigClassName=request("BigClassName")
Session.CodePage = 936

在BigClassName获取的时候,加上两行代码转码下,然后刷新下就行了。

如果你用的是ISAPI_Rewrite 3.x的组件的话,换用了ISAPI_Rewrite 3.x后发现编码后的字符会变成乱码,如果直接使用中文不编码,则会被格式化为GBK字符串。

解决办法:

在RewriteRule 规则的最后添加 NU 参数即可恢复正常。

关于ISAPI_Rewrite中文变乱码的解决方法:
1、在传输URL时,对中文进行urlencode,这样是没错的。
2、如果是ISAPI_Rewrite 3.x 只需添加 NU 参数即可。

示例
RewriteRule ^(.*)$ index.php?$1 [QSA,NU,PT,L]

下面是其他网友的补充

ISAPI_Rewrite伪静态中文URL乱码的解决方案,今天在设置飞飞CMS程序时候,设置伪静态搜索中文尽然乱码,本地Apache是正常的,后来网上查找了下原因,用一下方法解决了。

在用 ISAPI_Rewrite 1.3 版的时,只要对URL进行 UrlEncode 处理,就可以正常接收到中文。但是如果换为3.1版以后 GB2312 的接收页面就是乱码了。

在RewriteRule 规则中后面添加 [QSA,NU,PT,L] 即可恢复正常。

以下是我 .htaccess 文件的规则,红色部分就是添加的。

RewriteRule ^search-(.*)-(.*)-([0-9]+).html$ index.php\?s=/Home-vod-search-wd-$1-actor-$2-p-$3 [QSA,NU,PT,L]

PS:注意后面要空格在加 [QSA,NU,PT,L] 。

 类似资料:
  • 本文向大家介绍CodeIgniter输出中文乱码的两种解决办法,包括了CodeIgniter输出中文乱码的两种解决办法的使用技巧和注意事项,需要的朋友参考一下 在controller直接echo的时候,某些浏览器会出现乱码的情况。可以用下面两种方法解决: 1、常用的php的header函数 示例: 2、使用Output类来解决

  • 本文向大家介绍Apache中使非伪静态url跳转到伪静态url的方法,包括了Apache中使非伪静态url跳转到伪静态url的方法的使用技巧和注意事项,需要的朋友参考一下 如何使用.htaccess使非伪静态页面301跳转到伪静态页面然后再跳转?这是一个比较蛋疼的跳转。因为不小心就会搞成死循环导致页面无法打开。好在问题最终解决了。记录并分享出来,给需要的朋友借鉴借鉴。 规则如下: 注意: 创建.h

  • 本文向大家介绍java中FileOutputStream中文乱码问题解决办法,包括了java中FileOutputStream中文乱码问题解决办法的使用技巧和注意事项,需要的朋友参考一下 java中FileOutputStream中文乱码问题解决办法 使用FileOutputStream序列化可以直接向文件写入文本内容,代码如下: 但这里的字符串如果包含中文,就会出现乱码,这是因为FileOutp

  • 本文向大家介绍Java中URL传中文时乱码的解决方法,包括了Java中URL传中文时乱码的解决方法的使用技巧和注意事项,需要的朋友参考一下 前言 Java中URL传中文时乱码的问题相信不少朋友都遇到过,最近就遇到一个问题,就是在Action当中把一条中文信息绑定在URL的后面,ActionForward到别一个页面时,用reqeust.getParameter取出是出现乱码的问题。 解决办法 1、

  • 本文向大家介绍Python中MYSQLdb出现乱码的解决方法,包括了Python中MYSQLdb出现乱码的解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python中MYSQLdb出现乱码的解决方法,分享给大家供大家参考。具体方法如下: 一般来说,在使用mysql最麻烦的问题在于乱码。 查看mysql的编码: 命令:  可以看到如下结果: character_set_client

  • 本文向大家介绍解决python2.7 查询mysql时出现中文乱码,包括了解决python2.7 查询mysql时出现中文乱码的使用技巧和注意事项,需要的朋友参考一下 问题: python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码 --- 可能情况: 1.mysql数据库各项没有设置编码,默认为'latin' 2.使用MySQL.connect的时候没有设置默认编码 3.没有设置