从服务器下载文件中文名乱码解决方法


 try
        {
            string excelName = Request["excelName"].ToString(); //文件路径
            string fileName = Request["fileName"].ToString(); //下载的文件名
            if(!(string.IsNullOrEmpty(excelName)|| string.IsNullOrEmpty(fileName)))
            {
                Response.Charset = "GB2312";
                Response.ContentEncoding = Encoding.GetEncoding("GB2312");
                Response.ContentType="application/vnd.ms-excel";
                //火狐浏览器不需将中文文件名进行编码格式转换
                if (Request.ServerVariables["http_user_agent"].ToLower().IndexOf("firefox") == -1)
                {
                   excelName = HttpUtility.UrlEncode(excelName, System.Text.Encoding.UTF8);                 }
                Response.AppendHeader("Content-Disposition", "attachment;filename=" +excelName);
                Response.WriteFile(fileName);
                Response.Flush();
                Response.Close();
            }
        }
        catch
        { }

 注意判断浏览器 IE需要将中文文件名编码格式转换,而firefox浏览器则不用,不然下载下来的中文文件名会乱码


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM