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) 编辑 收藏 举报