首页服务器Web服务器 让服务器支持中文文件名下载的设置方法

让服务器支持中文文件名下载的设置方法

这个问题讨论过很多次了,确实是ms的大bug,出现在远东语言版的iis上。除了骂鳖儿该死之外,你有五个选择:

1.   换用其他的web   server,比如apache。   [强烈推荐本方…

这个问题讨论过很多次了,确实是ms的大bug,出现在远东语言版的iis上。除了骂鳖儿该死之外,你有五个选择:

1.   换用其他的web   server,比如apache。   [强烈推荐本方法]
2.   不使用中文做文件名,可以用拼音来替代。   [推荐]
3.   使用中英文混合文件名(据称能回避bug,但未经完全测试,不能保证所有情况下都能正确访问)   [不推荐]
4.   等ms出补丁   [没希望了,不知道多久了,也没看到补丁]
5.   强制所有的用户都仅使用直接以本地中文编码发送url的浏览器   [你等着被用户抱怨吧]


其实解决方法很简单:
修改注册表
local   machine->   system->currentControlset->services->inetinfo->
paramters->favordbcs   由1改为0,重启iis即可

local   machine->   system->currentControlset->services->inetinfo->
paramters->favordbcs   由1改为0
之所以能奏效,据我分析在于:

远东版的iis由于本地化的win2k采用的都是本地编码比如gbk或者shift-jis或者big5之类,这些编码都是双字节混合编码。
favordbcs的名字估计就是   “双字节编码习惯”。ms可能针对双字节编码作了智能判断的算法,或者是获得了较高的辨认优先级。

可惜ms可能有一些bug估计造成某些utf-8的编码和本地双字节编码产生冲突,距某些人说是会丢弃一个字节。

本来我准备做个完全的测试,不过现在既然有了这个workaround,就不必麻烦了。

问题在于,此方法肯定只是workaround,而且微软肯定早就知道,居然不公布,在ms网站上也搜索不到!
============


'转换双字节字符为合法的URL传输字串     

复制代码 代码如下:


function     getUrlEncodel(byVal     Url)      
      Dim     i,code      
      getUrlEncodel=""      
      if     trim(Url)=""     then     exit     function      
          for     i=1     to     len(Url)      
                code=Asc(mid(Url,i,1))      
                      If     code<0     Then     code     =     code     +     65536      
                          If     code>255     Then      
                              getUrlEncodel=getUrlEncodel&"%"&Left(Hex(Code),2)&"%"&Right(Hex(Code),2)      
        else      
            getUrlEncodel=getUrlEncodel&mid(Url,i,1)      
        end     if      
            next      
end     function 


测试通过。
本文来自网络,不代表1号站长-站长学院|资讯交流平台立场。转载请注明出处: https://www.1cn.cc/fwq/web/4766.html
上一篇Rewrite.dll生成html
下一篇 改进Web站点性能的五个方面
admin

作者: admin

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部