在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

时间: 2024-10-06 04:58:31

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

CentOS系统下中文文件名乱码

原文来自:http://www.zhukun.net/archives/7434 CentOS系统下中文文件名乱码 2014/09/01Linux运维centos.Linuxbear 从windows上传到linux的文件或者目录,在Linux系统中显示为乱码.虽然将Linux的env设置了LANG=en_US.UTF-8,并且本地的Shell客户端编码也设置成UTF-8,但在Shell中(或通过http访问),仍是乱码…… 原因在于,Windows 的文件名中文编码默认为GBK,压缩或者上传后

Ubuntu下解决解压zip文件中文文件名乱码问题

在Ubuntu下解压Windows下压缩的zip文件时,会出现解压出的带中文文件名的文件名乱码,这是因为Ubuntu和Windows默认的编码不同,Ubuntu下默认的编码是UTF-8,而Windows下默认的编码是GBK.对于这个问题,主要有以下三种解决方法: 一.命令行指定解压字符集 在Ubuntu下解压来源于Windows的zip文件,中文文件名会出现乱码问题. 出现这个问题的原因是:Windows和Ubuntu使用的默认编码不相同,而且zip文件自身却不带有任何标识其编码的信息.解决方案

通过freemarker出word的技术解决方案_通过点击一个按钮临时实现生成一个word,解决出word时中文文件名乱码问题,解决打开出word时打开的word出现问题的问题,出图片,解决动态列表

 通过freemarker制作word比较简单 步骤:制作word模板.制作方式是:将模板word保存成为xml----在xml的word模板中添加相应的标记----将xml的word文件的后缀名改成ftl文件 详细步骤如下: 模板制作(将要动态显示的数据打上标记,这个标记是freemarker中的EL标记,要注意的是,要控制值为空的情况,下面${(site.wzmc)?default("")}标识当网站名称为空的时候显示空值,如果这里如果不做控制,在实际项目中会显示错误!) 另外

SpringCloud上传文件,经过Zuul,中文文件名乱码解决办法

SpringCloud上传文件,经过Zuul,中文文件名乱码解决办法 2018-03-17 最近在使用SpringCloud搭建微服务的过程中,发现上传文件经过Zuul网关转发的时候,回应为上传文件名中文乱码导致文件的写操作失败,从而导致文件上传失败,但是不经过Zuul转发的时候,文件上传正常,因此猜测是Zuul对上传的请求的编码进行了处理.最终在网上找到了两种解决方案: 方案一.在上传文件的请求路径之前添加字符串“zuul”声明此请求的编码不做处理. 1 2 3 4 5 6 7 8 9 10

【转】C# DataTable 导出 Excel 进阶 多行表头、合并单元格、中文文件名乱码

本文原创地址:http://blog.csdn.net/ranbolwb/article/details/8083983 ,转载请保留本行. 本例子是上一篇 DataTable 导出 Excel 的进阶,除了上一篇提到的处理乱码问题,本例还添加了处理多行表头.合并单元格的功能及处理中文文件名乱码问题,应该可以满足日常开发的需要了. 废话不多说了,直接上代码: [C#] 可以写单独类 1 using System; 2 using System.Collections.Generic; 3 usi

php上传文件中文文件名乱码的解决方法

想必很多朋友在进行utf8编码的php开发上传功能的时候,都会遇到这样的一个问题,就是上传中文文件名的文件时,文件名会变成乱码,其实我们可以用iconv函数对文件名进行重新编码就解决问题了 可能会有不少朋友碰到一些问题就是上传文件时如果是英文倒好原文名不会有问题,如果是中文可能就会出现乱码了,今天我来给大家总结一下导致乱码php上传文件中文文件名乱码的原因与解决办法吧. 这几天在windows下安装了XAMPP,准备初步学习一下php的相关内容.这几天接触到了php上传文件,但是出现了一个郁闷问

PHP文件上传并解决中文文件名乱码问题

PHP文件上传并解决中文文件名乱码问题 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 if(isset($_FILES['file'])){ ? ????$upload='upload/'.$_FILES['file']['name']; ????? ????? ????if(is_uploaded_file($_FILES['file']['tmp_name'])){ ????????//iconv函数解决上传文件中文名乱码的问题,但是不提倡文

swfupload组件后台获取中文文件名乱码的问题解决

   问题描述:用swfupload上传文件,含有中文名称的文件上传会报错,我用的是获取FileItem对象,用FileItem对象的getName()方法获取文件名称会乱码,试着用request.setCharacterEncoding("UTF-8")及fileName= new String(fileName.getBytes("iso-8859-1";),"UTF-8"); 都不可以,用FileItem对象.getString("

ubuntu下netbeans中文显示乱码的问题

菜鸟终于搞定了这个小方块 以前在windows下使用eclipse出现乱码现象,首先会想到是不是字符集出现了问题.可是这次在linux下却没有生效,几个字符集改来改去,也没有能够见证奇迹的发生.万万没想到,最后是字体这块出了差错,在linux下西文字体不支持中文显示,可能是windows给惯出的毛病,所以,一开始没有想到这个问题. 出现这种情况,第一步,应该先去更改字体,找一个支持中文的,先别考虑字体好看不好看,找出问题,再下药.如果修改之后问题解决了,很好,下面的就不用再浪费时间继续看了.^_