Asp.Net导出文件名中文乱码

Asp.Net导出word为例,Excel等其他文件也一样

protected void Page_Load(object sender, EventArgs e)
    {string html = “网页html代码”;
        string fileName = "故事.doc";
        DownloadDoc(fileName,html);
    }
    public void DownloadDoc(string fileName, string pageHtml)
    {
        //设置Http的头信息,编码格式
        HttpContext.Current.Response.Buffer = true;
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.Charset = "gb2312";
        HttpContext.Current.Response.ClearContent();
        HttpContext.Current.Response.ClearHeaders();
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
        HttpContext.Current.Response.ContentType = "application/ms-word";
        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + clFielName(fileName));
        //关闭控件的视图状态  ,如果仍然为true,RenderControl将启用页的跟踪功能,存储与控件有关的跟踪信息
        this.EnableViewState = false;

        HttpContext.Current.Response.Write(pageHtml);
        HttpContext.Current.Response.End();
    }
    public string clFielName(string fileName)
    {
        System.Web.HttpContext curContext = System.Web.HttpContext.Current;
        string outputFileName = null;
        string browser = curContext.Request.UserAgent.ToUpper();
        if (browser.Contains("MS") == true && browser.Contains("IE") == true)
        {
            outputFileName = System.Web.HttpUtility.UrlEncode(fileName);
        }
        else if (browser.Contains("FIREFOX") == true)
        {
            outputFileName = "\"" + fileName + "\"";
        }
        else
        {
            outputFileName = System.Web.HttpUtility.UrlEncode(fileName);
        }
        return outputFileName;
    }

判断不同的浏览器,然后编码

原文地址:https://www.cnblogs.com/webapi/p/10148555.html

时间: 2024-10-01 07:48:54

Asp.Net导出文件名中文乱码的相关文章

asp.net 导出excel 中文乱码解决方法 (转)

用我转载的上一篇文章 Asp.net中把DataTable或DataGrid导出为Excel 导出的文档,中文有乱码现象,其实要解决中文乱码很简单,设置一下字符集.如下: // 设置编码和附件格式 curContext.Response.ContentType = "application/vnd.ms-excel"; curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312&

Java POI Excel导出文件名中文乱码

在导出前对名称根据浏览器做下处理 // 判断浏览器类型,firefox浏览器做特殊处理,否则下载文件名乱码 public static void compatibleFileName(HttpServletRequest request, HttpServletResponse response, String excelname) throws UnsupportedEncodingException { String agent = request.getHeader("USER-AGENT

【转】asp.net Cookie值中文乱码问题解决方法

来源:脚本之家.百度空间.网易博客 http://www.jb51.net/article/34055.htm http://hi.baidu.com/honfei http://tianminqiang.blog.163.com/blog/#m=0 ============================================================================== cookie中怎么保存中文 在用cookie保存用户名的时候,发现cookie值不能存中文

jquery file upload 后台收到的文件名中文乱码, filename中文乱码

本周用jquery file upload做上传文件的功能,后台会接受文件,并且截取文件名作为字符存入数据库.基本功能实现时候,试了几个文件,发现如果文件名如果没有中文就OK,如果文件名带中文的话,后台收到的就是中文乱码,怎么去解码都没用. 例如,上传的文件叫做"昕锐配置表.xls",但是到后台收到的却是 "鏄曢攼閰嶇疆琛?xls" ,如下图: 似乎也不是解码能解决的问题. 于是乎想弄清楚这个文件名是在哪个环节出问题的.首先写了一个最简单的html页面,里面就是最原

[转]mysql导入导出数据中文乱码解决方法小结

本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码: 代码如下: mys

mysql导入导出数据中文乱码解决方法小结

inux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码: 复制代码 代码如下: mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql 那么导入数据的时候也要使用--

asp.net 解决文本中文乱码   各类文本编码转UTF-8 文本

/// <summary> /// 解决文本中文乱码   各类文本编码转UTF-8 文本 /// </summary> /// <param name="fullPath">原路径</param> /// <param name="savePath">临时保存路径</param> /// <param name="strnew">新的文件路径</param&

解决Java POI 导出Excel时文件名中文乱码,兼容浏览器

String agent = request.getHeader("USER-AGENT").toLowerCase();   response.setContentType("application/vnd.ms-excel");   String fileName = "文件名";   String codedFileName = java.net.URLEncoder.encode(fileName, "UTF-8");

itop 2.2 导出PDF中文乱码问题解决

itop 2.2 导出PDF,中文会有乱码问题,这很明显就是字体设置问题,跟tcpdf无关. 经过排查,修改文件itop/core/pdfbulkexport.class.inc.php ,第128行即可, $oPDF->SetFont('dejavusans', '', 8, '', true); 改为 $oPDF->SetFont('DroidSansFallback', '', 8, '', true);