首页 > CMS > Shopex > 正文

shopex ISAPI_Rewrite3.x中文乱码解决办法

2024-08-30 19:06:40
字体:
来源:转载
供稿:网友

现在换用了 ISAPI_Rewrite 3.x 发现编码后的字符会变成乱码,如果直接使用中文不编码,则会被格式化为GBK字符串,因为 ISAPI_Rewrite 默认是以 UTF-8 的编码接收的.

解决方案

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

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

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

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

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

1、在传输URL时,将中文进行urlencode,这样是没错的,把最后一句的规则添加个NU参数,RewriteRule ^(.*)$ index.php?$1 [QSA,NU,PT,L]

配置举例:

传递的URL地址,代码如下:

http://www.Vevb.com/sell/search-htm-kw-%C6%BD%B0%E5%B5%E7%C4%D4.html

原来相应的RewriteRule为:

RewriteRule ^(.*)-htm-(.*)$ $1.php?$2

修正后的规则是:

RewriteRule ^(.*)-htm-(.*)$ $1.php?$2 [NU]

shopex原规则为:

  1. RewriteBase / 
  2. RewriteCond %{REQUEST_FILENAME} .(html|xml|json|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|cgi|shtml|shtm|phtm|xml)$ 
  3. RewriteCond %{REQUEST_FILENAME} !-f 
  4. RewriteCond %{REQUEST_FILENAME} !-d 
  5. RewriteRule ^(.*)$ index.php?$1 [L] 

修改后的规则为:

  1. RewriteBase / 
  2. RewriteCond %{REQUEST_FILENAME} .(html|xml|json|htm|php|php2|php3|php4|php5|phtml|pwml|inc|asp|aspx|ascx|jsp|cfm|cfc|pl|cgi|shtml|shtm|phtm|xml)$ 
  3. RewriteCond %{REQUEST_FILENAME} !-f 
  4. RewriteCond %{REQUEST_FILENAME} !-d 
  5. RewriteRule ^(.*)$ index.php?$1 [NU,L]

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表