分享

【新提醒】IIS中用ISAPI

 sssggggg 2015-04-10
以前在用 ISAPI_Rewrite 1.3 版的时候 只要对URL进行 UrlEncode 处理。就可以正常接收到中文.
但是现在换为 3.1版以后 GB2342 的接收页面就是乱码了。
现在换用了 ISAPI_Rewrite 3.x 发现编码后的字符会变成乱码,如果直接使用中文不编码,则会被格式化为GBK字符串。

因为 ISAPI_Rewrite 默认是以 UTF-8 的编码接收的。

在本人使用dz论坛以及部分blog程序,开启伪静态的时候,就多次遇到这个问题,现在整理一下解决方案如下,希望对大家有帮助!

翻了手册,发现有一个配置参数可以解决该问题:

nounicode|NU

If NU flag is set, transformation from Unicode to UTF-8 will not take place and all Unicode characters remain encoded in %xx format.
nounicode|NU

如果标志设置,从Unicode转换为UTF-8不会发生,所有的Unicode字符编码为%xx的保持格式


在你的RewriteRule 规则后台添加 NU 即可恢复正常。

关于ISAPI_Rewrite中文变乱码解决方法,无论何种情况,统一解决思想:

1、在传输URL时,将中文进行urlencode,这样是没错的。

2、如果是ISAPI_Rewrite 3.x 只需添加 NU 参数即可。

配置举例:

传递的URL地址:
/search-%C6%BB%B9%FB.html

相应的RewriteRule:

RewriteRule ^/search-(.*)\.html$ /search\.do\?keyword=$1 [QSA,NU,PT,L]

重点在我标红的地方

最后,无论使用哪家的产品,多看看产品手册是没错的,一般问题与使用方法在手册中都有完整的讲解。比如这次的 ISAPI_Rewrite 就是一个很好的说明。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多