在做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);
}
解決目前的問題
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);
}
解決目前的問題
留言
張貼留言