ASP.NET中产生一个Excel报表,供浏览器下载。显然,下载时经常有汉字报表名称。针对当前的两个主流的浏览器IE和Firefox,似乎没有兼容的解决办法。网上搜索了一些解决方法,但在Firefox 3.6下行不通。于是用google满世界里搜索,看有兼顾的解决办法没有。呵呵!

终于,看到了一个问答留言的小段话,意思是,在Firefox浏览器时,输出文件名前后加引号“”即可。测试下,这个简单的办法还真可以。代码如下:

  1. public void OutputExcelToResponse(string fileName)
  2. {
  3. string outputFileName = null;
  4. string browser = this.Context.Request.UserAgent.ToUpper();
  5. if (browser.Contains("MS") == true && browser.Contains("IE") == true)
  6. {
  7. outputFileName = HttpUtility.UrlEncode(fileName);
  8. }
  9. else if (browser.Contains("FIREFOX") == true)
  10. {
  11. outputFileName = "\"" + fileName + "\"";
  12. }
  13. else
  14. {
  15. outputFileName = HttpUtility.UrlEncode(fileName);
  16. }
  17. Response.Clear();
  18. Response.AddHeader("Content-Disposition", "attachment; filename=" + outputFileName);
  19. Response.ContentEncoding = System.Text.Encoding.Default;
  20. Response.ContentType = "application/ms-excel";
  21. Response.WriteFile(this.GetTempFileName());
  22. Response.Flush();
  23. Response.End();
  24. }

代码中,如果浏览器是IE,则使用HttpUtility.UrlEncode()方法(Server.UrlEncode()也可以)做变换;如果浏览器是Firefox,则直接在输出文件名前后加引号。

总结:上述方法在IE8、IE7、IE6、FF3.6.6、FF3.0.19下测试通过,在Opera 10.60下下载文件名仍然是乱码。

Firefox下载.net服务器文件时中文乱码的更多相关文章

  1. node.js在读取文件时中文乱码问题

    断更很久了........从今天开始会努力的持续更博,积极学习. 言归正传.今天在写node.js的demo时发现一个bug.我在node中读取本地的text文件时,发现英文的内容可以被读取,但是中文 ...

  2. 解决document.location.href下载文件时中文乱码

    1:tomcat 安装路径下 找到 conf文件下的server.xml 2:<Connector port="8080" URIEncoding="utf-8&q ...

  3. Qt读取文件时中文乱码问题

    在默认情况下,Qt 以 Unicode 格式处理文本字符,因此,字符本身是不会有问题的.之所以出现乱码,原因在于 Qt 不知道将 Unicode 字符以何种方式显示出来.        文本文件含有简 ...

  4. C#读取txt文件时中文乱码

    解决办法 使用GB2312中文字符集 StreamReader reader = new StreamReader(txtUrl, Encoding.GetEncoding("gb2312& ...

  5. C#中解决Response.AddHeader("Content-Disposition", "attachment; filename=" + filename)下载文件时文件名乱码的问题

    问题:下载文件时文件名乱码怎么解决? 在C#写后台代码过程中,经常遇到下载文件出现文件名乱码的问题,在网上找了很多方法,总是存在浏览器不兼容的问题,当IE浏览器不乱码时,火狐浏览器就会乱码,后来经过反 ...

  6. mysql 恢复数据时中文乱码

    mysql恢复数据时中文乱码,解决办法. 用source命令导入mysql数据库怎么设置中文编码 1.导出数据时指定编码在导出mysql sql执行文件的时候,指定一下编码格式: mysqldump ...

  7. 解决 Ubuntu 下 gedit编辑器打开文件出现中文乱码问题

    解决 Ubuntu 中 gedit编辑器打开文件出现中文乱码问题 1. 问题分析 在 windows 系统下,.txt 文件默认编码方式为 gb18030 格式的中文编码,而 gedit 默认的编码方 ...

  8. SpringMVC学习系列-后记 解决GET请求时中文乱码的问题

    SpringMVC学习系列-后记 解决GET请求时中文乱码的问题 之前项目中的web.xml中的编码设置: <filter> <filter-name>CharacterEnc ...

  9. curl提交数据时中文乱码

    1.使用curl提交数据时中文乱码解决: <?php $testJSON=array('name'=>'中文字符串','value'=>'test'); foreach ( $tes ...

随机推荐

  1. 命令拼接符 || && 区别

    &&   前面的命令执行成功,执行拼接符后面的命令. ||      前面的命令执行失败,执行拼接符后面的命令. 举例: (1)whoami && net user 真 ...

  2. Linux设备中的UUID

    UUID简介 UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的.如果你在系统中启动的时候,使用盘符挂载时,可能找不到设备而加载失败,而使用UUID挂载时,则不会有这样的问题.( ...

  3. [HTML5] input标签 disable属性

    <span>服务器名称:<input type="text" name="server_name" placeholder="服务器 ...

  4. VMware ESXi 6.7安装过程介绍

    虚拟机配置信息如下: 一.安装ESXI 开启虚拟机,正常进入开机引导安装界面 默认选择第一个选项,8s后自动进入如下界面,依次为: 加载引导程序 接受协议 选择用来存放ESXI操作系统的磁盘,不能乱选 ...

  5. OpenCV4系列之图像梯度和边缘检测

    在图像处理中,求解图像梯度是常用操作. Sobel算子 Calculates the first, second, third, or mixed image derivatives using an ...

  6. TFT液晶显示屏之绘图板应用

    应用范例: 使用 TOPWAY Smart LCD (HMT043FC-1C) 绘图板应用 第一步建立工程 ① 开TOPWAY TML Graphic Editor 2017 V1.04软件, 点击菜 ...

  7. localStorage 存储

    localStorage 的优势 localStorage 拓展了 cookie 的 4K 限制. localStorage 会可以将第一次请求的数据直接存储到本地,这个相当于一个 5M 大小的针对于 ...

  8. Android 日期选择框 简洁常用

    效果 核心代码 >方法 /** * @description 选择日期弹出框 * @param listener 选择日期确定后执行的接口 * @param curDate 当前显示的日期 * ...

  9. Vue整合d3.v5.js制作--柱状图(rect)

    先上效果图: 图中柱状图变成纯蓝色是鼠标滑动过的颜色(颜色可改,本人配色能力十分的强,建议直接用默认设置即可 ( ᖛ ̫ ᖛ )ʃ)) 1.环境说明 Vue版本:"vue": &q ...

  10. 关于...corresponds to your MySQL server version for the right syntax to use near '?' at line 1的解决办法

    完整报错信息: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual tha ...