解决用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();
            }
        }

.net从服务器下载文件中文名乱码解决方案

从服务器下载文件中文名乱码解决方案,具体文字说明不多了,直接贴代码了,具体代码如下: try { string excelName = Request["excelName"]....

.net中 下载中文文件名的乱码问题

首先是Encoding Response.ContentEncoding = System.Text.Encoding.UTF8; 然后是FileName的地方用System.Web.Http...

asp.net 下载文件 中文名乱码

context.Response.Clear(); context.Response.AddHeader("Content-Disposition", "att...

解决asp.net导出excel时中文文件名乱码

在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Te...
  • apensu
  • apensu
  • 2011年05月30日 11:48
  • 5585

在ASP.NET MVC中,IE与Firefox下载文件带汉字名时乱码的解决方法

最近在做一个BS项目,ASP.NET MVC中产生一个Excel报表,供浏览器下载。显然,下载时经常有汉字报表名称。针对当前的两个主流的浏览器IE和Firefox,似乎没有兼容的解决办法。网上搜索了一...

在ASP.NET中,IE与Firefox下载文件带汉字名时乱码的解决方法

针对IE,使用了ASP.NET的转换函数UrlEncode();针对Firefox,在输出文件名前后加引号。这样,ASP.NET产生的下载文件就可以带汉字名称且无乱码了。测试通过浏览器:IE8、IE7...
  • hulihui
  • hulihui
  • 2010年07月28日 15:41
  • 5193

asp.net 输出txt文件的时候中文出现乱码,已解决

using System.Text; using System.IO; Response.ContentEncoding = Encoding.GetEncoding("gb2312"); ...

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

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

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

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

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

在web.config中加入:这样设置后可以显示中文的文件,但URL地址也是中文的;如果服务器对中文地址的解析不好,可能导致图片无法浏览;所以修改:editor/filemanager/browser...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解决用ASP.NET下载文件时,文件名为乱码的问题
举报原因:
原因补充:

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