Asp.net 匯出 Excel時 中文檔案名稱在 FireFox 及 Safari 出現亂碼

在做Excel資料匯出時

fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);
ms = RenderDataTableToExcel(sourceTable) as MemoryStream;
HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename=" + fileName));
HttpContext.Current.Response.BinaryWrite(ms.ToArray());

雖然有把檔案文字編碼改為 UTF-8
在 IE,Chrome 都沒問題
但使用Firefox,Safari就會出現亂碼

拜請了Google大神,知道Firefox,Safari不需做轉碼動作
所以在匯出時,先判斷瀏覽器
改為
if (!((HttpContext.Current.Request.ServerVariables["http_user_agent"].ToLower().IndexOf("firefox") >= 0) ||  (HttpContext.Current.Request.ServerVariables["http_user_agent"].ToLower().IndexOf("safari") >= 0)))
{
  fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);
}

解決目前的問題

留言