IIS 发布的FTP提供下载时的转码问题

当在后台代码里下文件时,如   Response.Redirect("ftp://192.168.150.90:81/范例.doc")  代码实现下载时,会找不到文件。

当请求下载的文件时中文或者一些特殊符号时会出现该错误,英文名则无问题!

当浏览器弹出下载框的时候可以看到文件名被转码成用%  + 十六进制数表示的 字符串,故问题是处在转码上,也就是IIS的编码标准和我们程序自动的转码不一致。

解决:再执行Response.Redirect("ftp://192.168.150.90:81/范例.doc") 之前,需将‘范例.doc’用代码进行转码,

   str=System.Web.HttpUtility.UrlDecode("范例.doc",Encoding.GetEncoding("gb2312"));

之后再执行Response.Redirect("ftp://192.168.150.90:81/" + str) 

 

posted on 2013-05-29 17:00  iandbeyond  阅读(324)  评论(0编辑  收藏  举报

导航