解决用ASP.NET下载文件时,文件名为乱码的问题

原创 2006年06月09日 13:53:00

关键就一句:                    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 解决下载文件名乱码问题

  • 2014年03月04日 18:14
  • 2KB
  • 下载

解决下载文件名乱码问题的简单方法

string fileName="中文.xls";string filePath = @"/UpLoad/Reports"FileInfo file = new FileInfo(System.Web...
  • littlekeen
  • littlekeen
  • 2006年11月24日 13:01
  • 2106

Java Web开发下载文件,文件名中文乱码解决方案

​Web开发下载文件功能(代码如下),文件名如果带有中文,经常会出现乱码现象,需要进行编码。 String fileName = "测试文件.doc"; try { HttpServ...
  • u010475284
  • u010475284
  • 2014年03月14日 11:37
  • 2169

处理下载文件时中文乱码

/** * 下载文件时,针对不同浏览器,进行附件名的编码 * @param filename 下载文件名 * @param agent 客户端浏览器(通过request.getHeader("u...
  • jinwufeiyang
  • jinwufeiyang
  • 2016年06月18日 19:42
  • 560

关于java文件下载文件名乱码问题解决方案

JAVA文件下载时乱码有两种情况: 1,下载时中文文件名乱码 2,下载时因为路径中包含中文文件名乱码,提示找不到文件 解决方法见下面部分代码 response.setContentType("mul...
  • qq_2300688967
  • qq_2300688967
  • 2016年08月16日 19:40
  • 4643

java文件下载的文件名乱码问题的解决

在Java的web开发中,文件下载功能的文件名文件名乱码问题是经常遇到的。 对于这个问题,不同的浏览器,解决的方法不太一样。 IE的话,通过URLEncoder对filename进行UTF8编码。...
  • lian_zhihui1984
  • lian_zhihui1984
  • 2011年09月30日 09:49
  • 25989

解决各大浏览器下载文件,文件名乱码的问题

最近做项目,采用Spring MVC做控制层,下载文件的文件名总是在主流浏览器上显示乱码,Firfox不是乱码了,IE下又成了乱码。也是烦,IE总是独树一帜,没办法,只能让程序去适应,在网上也搜索了很...
  • fengchao2016
  • fengchao2016
  • 2017年02月15日 09:43
  • 3167

IE浏览器下载文件中文文件名乱码问题解决

在web开发工作当中,浏览器兼容性问题总是会引来一大波前端攻城狮们的疯狂吐槽,尤其是IE浏览器更是一个神一般的存在,总是让人头疼不已。 前段时间用java在做一个文件上传下载功能时,发现部分I...
  • lisehouniao
  • lisehouniao
  • 2016年09月15日 18:47
  • 9497

文件下载文件名乱码处理

1、jsp文件     response.setContentType("application/x-download");     String filedisplay = bean.getAT...
  • bei_fang_du_lang
  • bei_fang_du_lang
  • 2017年04月21日 16:10
  • 335

下载文件时,文件名乱码。

Unicode网页中上传下载文件时发生文件名乱码的问题 最近有一个需要支持unicode的项目在上传和下载文件时遇到文件名乱码问题. 项目背景,这个项目关键之处在于需要支持unicode以...
  • yangsp1
  • yangsp1
  • 2009年06月26日 19:12
  • 17080
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决用ASP.NET下载文件时,文件名为乱码的问题
举报原因:
原因补充:

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