关键就一句:                    string strTemp = System.Web.HttpUtility.UrlEncode(strName, System.Text.Encoding.UTF8);//解决文件名乱码

protected string strConn = Common.Config.GetAppSettingsKeyValue("DBConnectString");
        protected System.Data.OleDb.OleDbConnection  conn;
        protected System.Data.OleDb.OleDbCommand     cmd;
        protected System.Data.OleDb.OleDbDataReader  dr;

private void Download(string field, string id)
        {
            try 
            {
                string strCmd  = "select * from doc_body where id = " + id;
                conn = new OleDbConnection(strConn);
                cmd  = new OleDbCommand(strCmd,conn); 
                conn.Open();
                dr = cmd.ExecuteReader();
                dr.Read();
                int nSize = (int)dr["doc_size"];
                string strContentType = (string)dr["ContentType"];
                string strName = (string)dr["doc_name"];
                byte [] data = (byte[])dr[field];
                if(nSize == 0)
                {
                    message.Text = "<font color=#0000ff>没有文件下载!</font>";
                }
                else
                {
                    Response.Clear();
                    Response.Buffer = true;
                    //Response.Charset = "utf-8";
                    //Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");
                    //utf-8,gb2312,big5
                    Response.ContentType = strContentType;
                    //application/ms-excel,application/ms-word,application/ms-txt,application/ms-html或其他浏览器可直接支持文档
                    string strTemp = System.Web.HttpUtility.UrlEncode(strName, System.Text.Encoding.UTF8);//解决文件名乱码
                    Response.AppendHeader("content-disposition", "attachment;filename=" + strTemp);//附件下载
                    //Response.AppendHeader("content-disposition", "online;filename=" + strName);//在线打开
                    Response.OutputStream.Write(data, 0, nSize);     
                }
            }
            catch(Exception exp)
            {
                Common.utility.MessageBox(this,"下载失败!/n错误信息:/n"+exp.Message);
            }
            finally
            {
                conn.Close();
            }
        }

解决用ASP.NET下载文件时,文件名为乱码的问题的更多相关文章

  1. java下载文件时文件名出现乱码的解决办法

    转: java下载文件时文件名出现乱码的解决办法 2018年01月12日 15:43:32 橙子橙 阅读数:6249   java下载文件时文件名出现乱码的解决办法: String userAgent ...

  2. Servlet:浏览器下载文件时文件名为乱码问题

    1 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletExcep ...

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

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

  4. ie浏览器下载文件时文件名乱码

    做一个文件下载功能时,用ie浏览器下载时文件名乱码,火狐和谷歌正常,修改后ie显示正常,修改方法如下: @RequestMapping(value = "fileDownload" ...

  5. Java 解决IE浏览器下载文件,文件名出现乱码问题

    /** * 区分ie 和其他浏览器的下载文件乱码问题 * @param request * @param fileName * @return */ public String getFileName ...

  6. window.location.href下载文件,文件名中文乱码处理

    下载文件方法: window.location.href='http://www.baidu.com/down/downFile.txt?name=资源文件'; 这种情况下载时:文件名资源文件会中文乱 ...

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

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

  8. Java下载文件时文件名中的中文变成下划线,其他正常

    将 utf-8 转换成 ISO8859-1 编码 response.addHeader("Content-Disposition", "attachment;filena ...

  9. 转载: 正确处理浏览器在下载文件时HTTP头的编码问题(Content-Disposition)

    最近在做一个下载工具时,发现CSDN上的资源下载时竟然没有被拦截到,经过分析,终于有了一个发现,解决了我之前做文件下载时的乱码问题,所以转载这篇释疑文章,希望有人可以看到,可以从中得到帮助,也用来备忘 ...

随机推荐

  1. Tableau学习笔记之二

    2张图片解析下Tableau 9.0界面的功能 1.数据加载界面: 2.数据分析界面:

  2. qt 设置背景图片

    博客出处:http://www.cppblog.com/qianqian/archive/2010/07/25/121238.htm 工作似乎走上正轨了,上周五的工作是做一个界面,用到QFrame和Q ...

  3. Web服务器(Apache)虚拟主机的配置

    一.定义    所谓虚拟主机是指在一台服务器里运行几个网站,提供WEB.FTP.Mail等服务.    二.虚拟主机的实现方法有三种:    基于IP的方法,基于主机名的方法和基于端口的法官法.    ...

  4. CSS基础知识—【结构、层叠、视觉格式化】

    结构和层叠 选择器的优先级顺序: style[内联元素]选择器>Id选择器>类选择器 属性选择器>元素选择器>通配器选择器 重要性:@important 有这个标记的属性值,优 ...

  5. Codeforces Round #365 (Div. 2) C - Chris and Road 二分找切点

    // Codeforces Round #365 (Div. 2) // C - Chris and Road 二分找切点 // 题意:给你一个凸边行,凸边行有个初始的速度往左走,人有最大速度,可以停 ...

  6. Chrome多线程模型

    为什么使用多线程? Chrome的多线程模型主要解决什么问题? 如何实现该问题的解决? 1. 解决问题 Chrome有很多线程,这是为了保持UI线程(主线程)的高响应度,防止被其他费时的操作阻碍从而影 ...

  7. 卸载 Cloudera Manager 5.1.x.和 相关软件【官网翻译】

    问题导读: 1.不同的安装方式,卸载方法存在什么区别?2.不同的操作系统,卸载 Cloudera Manager Server and 数据库有什么区别? 重新安装不完整如果你来到这里,因为你的安装没 ...

  8. discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现

    discuz论坛apache日志hadoop大数据分析项目:清洗数据核心功能解说及代码实现http://www.aboutyun.com/thread-8637-1-1.html(出处: about云 ...

  9. Objective-c setObject:forKey:和setValue:forKey:的区别

    setObject:forKey: 是NSMutableDictionary类的方法                               key参数类型可以是任意类型对象           ...

  10. ElasticSearch+Springboot实际应用:索引同步建设,搜索过程

    1.介绍 springboot框架,众多自动化的部署和约定配置,造成了springboot的着手麻烦,熟练后可以快速快捷进行开发,常用作快捷开发的java底层框架.各位看官都是大神,自行体会.     ...