在FireFox/IE下Response中文文件名乱码问题解决方案

在FireFox/IE下Response中文文件名乱码问题解决方案

作者: 字体:[增加 减小] 类型:转载

 
只是针对没有空格和IE的情况下使用Response.AppendHeader()如果想在FireFox下输出没有编码的文件,并且IE下输出的文件名中空格不为+号,就要多一次判断了,接下来将详细介绍下感兴趣的朋友可以了解下,或许对你有所帮助
发现很多园子里的人在处理Response下载文件名是使用这个方法
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileInfo.Name, System.Text.Encoding.UTF8));
但这个只是针对没有空格和IE的情况下使用。
如果想在FireFox下输出没有编码的文件,并且IE下输出的文件名中空格不为+号,就要多一次判断了。
复制代码 代码如下:

if (HttpContext.Current.Request..UserAgent.ToLower().IndexOf("msie") > -1)
{
downloadfilename = HttpUtility.UrlPathEncode(downloadfilename);
}
if (HttpContext.Current.Request..UserAgent.ToLower().IndexOf("firefox") > -1)
{
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + downloadfilename + "\"");
}
else
{
Response.AddHeader("Content-Disposition", "attachment;filename=" + downloadfilename);
 
 
 

使服务器能够收集有关在客户端运行的浏览器功能的信息。下面代码为常用代码,其他具体信息参见MSDN。

HttpBrowserCapabilities b = Request.Browser; 
Response.Write("浏览器名称和版本号:" + b.Type + "<br>"); 
Response.Write("名称:" + b.Browser + "<br>"); 
Response.Write("版本:" + b.Version + "<br>"); 
Response.Write("操作平台:" + b.Platform + "<br>"); 
Response.Write("是否支持框架:" + b.Frames + "<br>"); 
Response.Write("是否支持表格:" + b.Tables + "<br>"); 
Response.Write("是否支持cookies:" + b.Cookies + "<br>");

 

浏览器名称和版本号:IE6 
名称:IE 
版本:6.0 
操作平台:WinXP 
是否支持框架:True 
是否支持表格:True 
是否支持cookies:True

命运负责洗牌,但是玩牌的是我们自己!
posted @ 2015-05-05 09:26  一亩二分  阅读(265)  评论(0编辑  收藏  举报