日期:2014-05-17  浏览次数:20836 次

如何解决ASP.NET下载时的中文文件名乱码,与TXT文件中存在代码两个问题

存在问题的代码段:

Response.ContentType = ftype;//ftype为文件后缀名,如.jpg,.txt,.zip

Response.AddHeader("Content-Disposition", "attachment;filename=" +fnametype);//fnametype为文件全名,如file1.jpg //  这里导致出现中文名乱码现象

string filename = Server.MapPath("Resource\\" +fnametype);//filename为相对文件路径

Response.TransmitFile(filename);

 

有效解决这两个问题的方法:

Response.Clear();                    //解决TXT文件中存在代码的问题
Response.ContentType = ftype;
Response.AddHeader("Content-Disposition", "attachment;filename=" +Server.UrlEncode(fnametype));                  //解决中文文件名乱码的问题
string filename = Server.MapPath("Resource\\" +fnametype);
Response.TransmitFile(filename);
Response.End();                    //解决TXT文件中存在代码的问题

 

 

参考资料:【谢谢分享者】

解决中文名乱码的方法:

http://blog.csdn.net/ranbolwb/article/details/7269918

ASP.NET下载文件的几种方法:

http://www.cnblogs.com/bluesky5304/archive/2010/02/23/1671925.html