在FireFox/IE下Response中文文件名乱码问题解决方案
时间:2020-12-10 08:46:56|栏目:.NET代码|点击: 次
发现很多园子里的人在处理Response下载文件名是使用这个方法
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileInfo.Name, System.Text.Encoding.UTF8));
但这个只是针对没有空格和IE的情况下使用。
如果想在FireFox下输出没有编码的文件,并且IE下输出的文件名中空格不为+号,就要多一次判断了。
if (Request.UserAgent.ToLower().IndexOf("msie") > -1)
{
downloadfilename = HttpUtility.UrlPathEncode(downloadfilename);
}
if (Request.UserAgent.ToLower().IndexOf("firefox") > -1)
{
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + downloadfilename + "\"");
}
else
{
Response.AddHeader("Content-Disposition", "attachment;filename=" + downloadfilename);
}
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileInfo.Name, System.Text.Encoding.UTF8));
但这个只是针对没有空格和IE的情况下使用。
如果想在FireFox下输出没有编码的文件,并且IE下输出的文件名中空格不为+号,就要多一次判断了。
复制代码 代码如下:
if (Request.UserAgent.ToLower().IndexOf("msie") > -1)
{
downloadfilename = HttpUtility.UrlPathEncode(downloadfilename);
}
if (Request.UserAgent.ToLower().IndexOf("firefox") > -1)
{
Response.AddHeader("Content-Disposition", "attachment;filename=\"" + downloadfilename + "\"");
}
else
{
Response.AddHeader("Content-Disposition", "attachment;filename=" + downloadfilename);
}
上一篇:C#使用ToUpper()与ToLower()方法将字符串进行大小写转换的方法
栏 目:.NET代码
下一篇:asp.net Coolite TablePanel使用
本文标题:在FireFox/IE下Response中文文件名乱码问题解决方案
本文地址:http://www.codeinn.net/misctech/31319.html