2014年7月24日 星期四

IE 下載亂碼,到底再做什麼

這幾天遇在 WIN7 用IE11下載檔案檔案名稱居然顯示亂碼。
這種情況在Firefox、及Chrome上面並不會發生,偏偏在IE上。搜尋了一下發現

原因大概是
  • 因資料庫為UTF8格式,在有中文檔名時,不轉成BIG-5的話,IE下載回來的檔名會變亂碼
  • 原文件編碼與Windows使用的編碼不通
  • 對於 Content-Disposition 是用 ANSI 編碼,碰到你用 Unicode 編碼的檔名解析就會錯誤,造成亂碼。 因此將目前標頭輸出資料流的編碼方式改為 BIG5 參考處
另外還可以加入:
if (strspn("MSIE",$_SERVER["HTTP_USER_AGENT"])==4){  
//执行IE的程序块 
$aaa= ' filename="' . iconv('utf-8','big-5',$this->name) . '";';
}else{
$aaa= ' filename="' . $this->name . '";';
}

這是因為IE與所瀏覽網站的相容性問題造成。將網站加入相容性檢視清單可解決。在Chrome及Firefox 上無此問題發生。
比較簡單的方法就是,IE 設定中 在"相容性檢視設定" 加入該網站 。
結果就這正常了


沒有留言:

張貼留言

2017/5月 丹丹漢堡菜單

身為高雄人實在太常跑丹丹了。 尤其是午餐,有時候不知道要吃什麼就跑丹丹,看看有什麼可以點來吃,簡單就好。 這邊分享2017,五月菜單 方便你我點餐,單眼拍的,放大應該會比較清晰