asp.net下载中文乱码问题
asp.net默认的是UTF-8编码的以下设置下载中文无易做图常显示
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(file.Name, System.Text.Encoding.GetEncoding("gb2312")));
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.Filter.Close();
Response.WriteFile(file.FullName);
Response.End();
以下设置下载中文可以正常显示
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(file.Name, System.Text.Encoding.GetEncoding("Utf-8")));
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.Filter.Close();
Response.WriteFile(file.FullName);
Response.End();
不知道以gb2312编码中文不能正常显示Utf-8却可以 --------------------编程问答-------------------- 对头就是这个样子的 --------------------编程问答-------------------- utf-8通用的嘛。 --------------------编程问答--------------------
顶 --------------------编程问答-------------------- 使用 UrlEnode 编码方式解决总是不彻底,即使在 IE 里显示正确了,在其他浏览器里也不正确,不相信你可以自己试试。
除了中文,还有空格、特殊符号等都不正确。
鄙人不才,前段时间专门研究了这种现象,结果老外的代码,写出了一个比较令人满意的 HttpHandler,得到的效果如下图所示
在这里下载代码:SpecifiedFileHandler
在这里查看文章:彻底解决文件下载乱码问题
在这里访问我的网站:http://www.ciznx.com
--------------------编程问答-------------------- 编码实在是个很麻烦的问题 --------------------编程问答-------------------- 是的就是那样。utf-8是通用的 --------------------编程问答-------------------- UTF-8有时候也是出问题。我也正在研究! --------------------编程问答-------------------- string strPa = Server.MapPath("../Template/a.doc");
Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("a.doc", System.Text.Encoding.GetEncoding("utf-8")) + "");
Response.ContentType = "application/octet-stream";
Response.WriteFile(strPa);
Response.End(); --------------------编程问答-------------------- utf-8可以解析更多的字符 --------------------编程问答-------------------- 一般utf-8多一些 --------------------编程问答-------------------- 告诉你一个方法绝对解决此问题
用记事本打开那个页面,然后另存为的时候,编码选择utf-8,提示覆盖即可。绝度解决 --------------------编程问答-------------------- Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(file.Name, System.Text.Encoding.GetEncoding("gb2312")));
对文件名进行gb2312编码 为什么输出中文名是乱码呢?
--------------------编程问答-------------------- UPPUP --------------------编程问答-------------------- Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(file.Name, System.Text.Encoding.GetEncoding("gb2312")));
对文件名进行gb2312编码 为什么输出中文名是乱码呢? --------------------编程问答--------------------
你当前页面是utf-8编码,弹出的下载窗口文件名却是gb2312,那只能显示成乱码了. --------------------编程问答-------------------- 编码是个头痛的事,尤其是在台资企业,繁体字的时候,更头痛!!英文和中文还好一点 --------------------编程问答-------------------- up!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!111
补充:.NET技术 , ASP.NET