解决导出中文文件名乱码的方法
/// 转换中文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();
}