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

这个问题讨论过很多次了,确实是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即可

之所以能奏效,据我分析在于:

远东版的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

测试通过。

iis 不能下载 中文rar文件

最近发现IIS不能下载中文名称的文件,觉得很奇怪。

版本:windows2003server+iis6

应该是没问题的啊。

上网查了一下,说:

在运行里打开注册表:桌面左下角“开始”菜单,运行,输入“regedit”,98版本是"regedit32",展开下面目录,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters\

FavorDBCS 的值改为"0" 如果没有 FavorDBCS 右击新建 [字符串值]

或直接运行下面的reg文件

代码如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters]
"favordbcs"="0"

然后重新启动IIS。

IIS不能下载RAR文件,如何解决这个问题?

一,双击IIS管理器——IDC(本地计算机)——WEB服务扩展
二,右击WEB服务扩展——开启包含文件
三,设置完成,重启IIS

(0)

相关推荐

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

    这个问题讨论过很多次了,确实是ms的大bug,出现在远东语言版的iis上.除了骂鳖儿该死之外,你有五个选择: 1.   换用其他的web server,比如apache.   [强烈推荐本方法] 2.   不使用中文做文件名,可以用拼音来替代.   [推荐] 3.   使用中英文混合文件名(据称能回避bug,但未经完全测试,不能保证所有情况下都能正确访问)   [不推荐] 4.   等ms出补丁   [没希望了,不知道多久了,也没看到补丁] 5.   强制所有的用户都仅使用直接以本地中文编码发送

  • 解决Java原生压缩组件不支持中文文件名乱码的问题

    最近发现Java原生的Zip压缩组件在压缩过程中,不支持文件名的中文编码,会在压缩过程中把中文文件名变成乱码.Apache的ant包中的压缩组件修复了这个问题,如果你在使用压缩功能时需要支持中文文件名,建议你直接使用Apache的压缩组件来实现这个功能. 具体使用方法: 1.在你的pom文件中增加对Apache的ant工具包的dependency: <dependency> <groupId>org.apache.ant</groupId> <artifactId

  • CentOS配置虚拟主机virtualhost使服务器支持多网站多域名的方法

    本文实例讲述了CentOS配置虚拟主机virtualhost使服务器支持多网站多域名的方法.分享给大家供大家参考,具体如下: 如何让centos(redhat)配置虚拟主机,让服务器支持多个网站,针对Apache,只需要你修改apache配置文件/etc/httpd/conf/httpd.conf即可. 里面有个example文件,你只要对应配置即可. #<VirtualHost *:80> # ServerAdmin webmaster@dummy-host.example.com # Do

  • PHP中file_exists()判断中文文件名无效的解决方法

    本文实例讲述了PHP中file_exists()判断中文文件名无效的解决方法.分享给大家供大家参考.具体方法如下: php中判断文件是否存在我们会使用file_exists函数或is_file函数,但在使用file_exists时如果你文件名或路径是中文在uft8编码文档时是无效.本文就来解决此问题,下面我们一起来看看. 定义和用法: file_exists() 函数检查文件或目录是否存在. 如果指定的文件或目录存在则返回 true,否则返回 false. 例子1 复制代码 代码如下: <?ph

  • 如何让Nginx支持中文文件名具体设置步骤

    首先得让你的系统有中语语言包: 设置前可以执行:locale 看一下,如果显示是en_US.UTF-8,即是正常,不用按下面的步骤设置.如果显示其他编码需要按如下步骤设置. CentOS 编辑/etc/sysconfig/i18n 文件,内容修改为:(可以使用vi.nano或winscp图形管理软件,依个人口味选择) LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" 保存,重启系统. Debian apt-get inst

  • 使Nginx服务器支持中文URL的相关配置详解

    关于中文URL已经是老话题了,到目前为止依然有很大一部分SEOer都会说不要使用中文URL,对搜索引擎不友好. 不过,那已经是以前的事了,谷歌很早就支持了中文URL,当时百度技术没有跟上,URL中会出现乱码. 在谷歌的算法中,URL包含关键字是会给页面赋予一定权重的,英文是,中文也是,朽木猜测百度之前没有给予中文URL权重,可能是因为识别的问题. 经过一些简单的测试,朽木发现中文URL中包含关键字,对百度SEO有很积极的影响. 不过需要注意的是最好使用UTF8编码,虽然百度有了"一定的识别能力&

  • centos服务器下nginx图片防盗链设置方法

    做运维的朋友经常会有一些烦恼,比如网站总是被人抄袭,比如网站总是被人引用上面的图片,虽然一张图两张图,并不耗费很多流量,但一旦引用的人多了,这个还是比较废流量的. 防盗链就是禁止其他网站引用自己网站资源而做的一系列设置,优点就不需要说了,绝多数就是防止资源浪费,特别是有宽带.流量限制的空间如果不做一些 限制可能就光引用自己网站图片.视频等等资源可能会消耗很大一部分流量.本文就简单的说一下在nginx服务器上如何做防盗链设置. 第1步:下载nginx网站配置文件. 有些网友可能是直接到服务器中使用

  • php上传文件中文文件名乱码的解决方法

    可能会有不少朋友碰到一些问题就是上传文件时如果是英文倒好原文名不会有问题,如果是中文可能就会出现乱码了,今天我来给大家总结一下导致乱码php上传文件中文文件名乱码的原因与解决办法吧. 这几天在windows下安装了XAMPP,准备初步学习一下php的相关内容.这几天接触到了php上传文件,但是出现了一个郁闷问题,我准备上传一个excel文件,但是如果文件名是中文名就会报错. 一来二去很是郁闷,后来仔细想了想应该是文件编码的问题,我写的php文件使用的是UTF-8编码,如果没有猜错APACHE处理

  • IIS服务器下做301永久重定向设置方法[图解]

    不过一场风波之后,很多服务商已经不提供转发服务了,虽说易名现在还可以享用到免费的转发服务,但是却不能不带www的转发到带www的同时进行MX记录解析,这对于需要MX解析的朋友也是一大烦恼. 而且有些域名在国外,转发更是用不了,也只能进行301永久重定向了,不然搜索引擎是把不带www的站和带www的站分开对待的,只是我们习惯于用带www的域名罢了. 在网络上看了些教程,再根据自己的实践,也终于搞定了IIS服务器上的301永久重定向设置问题.实现方法如下: 1.新建一个站点,对应目录如E:\wwwr

  • IIS服务器下做301永久重定向设置方法[可以传参][图文]

    不过一场风波之后,很多服务商已经不提供转发服务了,虽说易名现在还可以享用到免费的转发服务,但是却不能不带www的转发到带www的同时进行MX记录解析,这对于需要MX解析的朋友也是一大烦恼. 而且有些域名在国外,转发更是用不了,也只能进行301永久重定向了,不然搜索引擎是把不带www的站和带www的站分开对待的,只是我们习惯于用带www的域名罢了. 在网络上看了些教程,再根据自己的实践,也终于搞定了IIS服务器上的301永久重定向设置问题.实现方法如下: 1.新建一个站点,对应目录如E:\wwwr

随机推荐