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

蔚蓝色的天,深蓝色的海,金黄色的沙,灰白色的鸥,穿着米白格子衬衫的你,站在金灿灿的阳光下,很耀眼。
发现很多园子里的人在处理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);
}

本文在FireFox/IE下Response中文文件名乱码问题解决方案到此结束。人,一简单就欢乐,但欢乐的人寥寥无几;一复杂就痛苦,可痛苦的人却熙熙攘攘。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
完美兼容ie和firefox的asp.net网站加入收藏和设置主页

适用与firefox ASP.NET无刷新二级联动下拉列表

高效的使用 Response.Redirect解决一些不必要的问题

ASP.NET之Response.Cookies.Remove 无法删除COOKIE的原因

HttpResponse的Output与OutputStream、Filter关系与区别介绍