asp.net 下载文件时,文件名在firefox、IE等浏览器中的处理方式不一样,容易出现乱码。
提供解决方案:
1、添加编码规则Response.HeaderEncoding Response.ContentEncoding 为 utf-8
Response.HeaderEncoding = System.Text.Encoding.UTF8; Response.ContentEncoding = System.Text.Encoding.UTF8; 2、头部分 Content-Disposition 的设置。 要按照 rfc231 要求, 应该按照如下格式设置: "Content-Disposition","attachment;filename*=utf-8'zh_cn'文件名.xx" 关键是 filename的设置,*= 后面是 两个单引号,分成三部分(编码 语言 文件名) 如:*=utf-8'zh_cn'文件名.xx 或者 *=utf-8' '文件名.xx
Response.AddHeader("Content-Disposition", string.Format("attachment;filename*=utf-8''{0}", HttpUtility.UrlPathEncode(filename.NoHTML())));