解决导出中文文件名乱码的方法

 

解决导出中文文件名乱码的方法

 792人阅读 评论(0) 收藏 举报
/// <summary>
        /// 转换中文excel名称,防止乱码
        /// </summary>
        /// <param name="fileName">中文名称</param>
        /// <returns></returns>
        private static string GetToExcelName(string fileName)
        {
            string UserAgent = HttpContext.Current.Request.ServerVariables["http_user_agent"].ToLower();
            if (UserAgent.IndexOf("firefox") == -1)
                fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);
            return fileName;

        }public enum ExportType {WORD,EXCELL }

        public static void Export(string htmlToExport, string filename,ExportType eType)
        {
           
            filename = HttpUtility.UrlDecode(filename);
            string attachment = string.Empty;
            if (eType.ToString() == "WORD")
            {
                 attachment = "attachment;filename=" + GetToExcelName(filename) + ".doc";
                 System.Web.HttpContext.Current.Response.ContentType = "application/vnd.msword";
            }
            else
            {
                 attachment = "attachment;filename=" + GetToExcelName(filename) + ".doc";
                 System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
            }
            System.Web.HttpContext.Current.Response.ClearContent();
            System.Web.HttpContext.Current.Response.AddHeader("content-disposition", attachment);
            System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
            //page.Response.ContentEncoding = page.Response.HeaderEncoding;
            

            System.Web.HttpContext.Current.Response.Write(htmlToExport);


            System.Web.HttpContext.Current.Response.End();
        }

posted @ 2014-01-13 17:33  JIN__JIN  阅读(2480)  评论(0编辑  收藏  举报