ASP.NET实现下载功能的中文文件名乱码处理

原创 2006年06月21日 09:34:00
早几天在系统中添加文件管理的下载功能, 要求在ASPX文件中实现, 以进行权限的控件,
于是添加下列代码:
...
Response.ContentType = mime; //相应的MIME TYPE
Response.AppendHeader("Content-Disposition", "attachment; filename=/"" +fileName + "/"");

Response.BinaryWrite(bytes);
Response.End();
...
 
当fileName中包含中文时, 文件下载保存时, 文件名变成了乱码, 需要用户修改,这也就违被了我设定预设文件名的初衷.
解决办法1: 对fileName进行URL编码, 把下划线标注的那句改为
Response.AppendHeader("Content-Disposition", "attachment; filename=/"" + Server.UrlEncode(fileName) + "/"");
便可.
虽然中文乱码问题解决了, 但是还有一个问题: 在测试时, 下载保存的文件名有时会变成该页面的名字(.aspx), 虽然可以把内容下载到本地, 但是需要更改文件名及类型, 这样会给用户带来很大的困惑.
还有一个办法, 可以很简单的解决以上的两个问题:
解决办法2: 假设当前的URL为 http://localhost/download.aspx?id=123, fileName为"下载.pdf", 我们只要把下载URL改为 http://localhost/download.aspx/下载.pdf?id=123 可, 上面下划线标注的那句代码则可以注释掉了, 试一下, 结果一定让你非常满意!

相关文章推荐

解决Asp.net 实现文件下载时、输出文件时文件名的中文乱码和空格异常

在 asp.net 项目中,我们可以很方便地使用 Response.WriteFile() 方法向客户端输出一个文件。 实际使用 asp.net 向客户端输出文件流时,却出现了异常: 1、空格问题...

彻底解决Asp.net 文件下载时文件名的中文乱码和空格异常全球性技术难题

 在 asp.net 项目中,我们可以很方便地使用 Response.WriteFile() 方法向客户端输出一个文件。实际使用 asp.net 向客户端输出文件流时,却出现了异常:1、空格问题,当原...

Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案

一、首先,说一下我要实现的功能     根据老师ID、学年、学期,查询该教师教授的课程信息。 二、传递参数我遇到的问题:     我通过传递教师ID、学年和学期从数据库查询出该教师...

asp.net中URL参数传值中文乱码的三种解决办法

在做Asp.Net开发的时候,参数传递中文时,经常会遇到页面乱码的问题,下面是在网上收集的相关资料,请大家参考: 解决的方法一般有3种: 1.设置web.config文件 ....

asp.net Request.QueryString中文乱码问题

项目中总会遇到中文乱码的问题,java,php,ast.net都如此。         中文的问题分为3种:             第一种是代码文件中自带的,如:[类别序号          ...

解决FCKeditor For asp.net 上传图片时中文乱码问题

在web.config中加入:这样设置后可以显示中文的文件,但URL地址也是中文的;如果服务器对中文地址的解析不好,可能导致图片无法浏览;所以修改:editor/filemanager/browser...

Asp.net utf-8 编码中文乱码完全解决方案

 Unicode 编码正逐渐成为多语言支持的最通用解决方案。采用 Unicode 编码的中文网页能在各种平台、各种类的浏览器上都得到很好的兼容。utf-8 是 Unicode 的一种存储/交换实...

ASP.NET解决中文乱码

1.设置web.config文件 system.web>  ......  globalization requestEncoding="gb2312" responseEncoding...
  • L0veIT
  • L0veIT
  • 2012年08月06日 15:22
  • 443

【工作笔记0010】asp.net后台Request.QueryString获取的url中文参数乱码解决方案

2.以url形式get或post请求。这种情况多是用在 只需要提交少量数据到后台验证或请求数据,但只要url中参数带有中文,就很可能会出现后台以Request.QueryString["参数名"].T...

asp.net中URL参数传值中文乱码的三种解决办法

在做Asp.Net开发的时候,参数传递中文时,经常会遇到页面乱码的问题,下面是在网上收集的相关资料,请大家参考: 解决的方法一般有3种: 1.设置web.config文件 ....
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET实现下载功能的中文文件名乱码处理
举报原因:
原因补充:

(最多只允许输入30个字)