[請益] 透過php下載的檔案編碼不正常(xoops)
各位好 先提供我的server系統環境:
windows server 2003 IIS6.0
php5 mysql5.0
另外我是使用xoops套件 2.0.18 UTF-8版跟cbb3.08
xoops剛架設起來時功能皆為正常,並平安的運作了一段時間
但在幾天前,有使用者回報,討論區下載的檔案會發生異常
(那時才剛把Server做安全性更新 不知跟此是否有關)
打開下載的word檔案 會出現叫你選擇檔案編碼的視窗
選完編碼後整份文件依舊是亂碼
但在Server上的檔案是正常的 所以個人判斷可能是透過程式下載的關係
測試後發現上傳的檔案編碼是ansi 結果下載回來會變成utf8格式
把檔案用notepad++開啟,重新編譯成ansi或utf8無bom格式,檔案就能正常開啟
直接上傳utf8編碼的txt測試也是正常
google了很久 找到一些類似的情況
本以為是討論區中的php網頁本身含有bom或是include到含有bom的網頁
或是哪邊有不知名的空白
試著把有可能include到的php檔都存成無bom utf8 但都無效
那最有可能的地方我想可能是程式裡面寫header的地方有問題
header('Content-Type: '.$mimetype);
header('Expires: 0');
if (preg_match("/MSIE ([0-9]\.[0-9]{1,2})/", $HTTP_USER_AGENT)) {
// 瀏覽器IE
header('Content-Disposition: attachment;
filename="'.urlencode($file_display).'"');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
} else {
header('Content-Disposition: attachment;
filename="'.urlencode($file_display).'"');
header('Pragma: no-cache');
}
header("Content-Type: application/force-download");
header("Content-Transfer-Encoding: binary");
不過google後找不出有比較怪的地方
然後最怪的是此程式在xp環境下卻能正常 囧
server 2003則是突然就不能運作了
xp跟server除了IIS版本不同外其他皆相同
附上原始碼:http://sites.google.com/site/fet0124/fet
程式是xoops cbb 套件中處理下載檔案的程式
不知道只看這個是否會有不周全的地方 @@
問題寫的落落長
想請較有經驗的版友可以幫我解惑 感激不盡!!
--
已經處理兩天了還是無法解決 QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.73.236.80
※ 編輯: fet0124 來自: 203.73.236.80 (05/18 17:35)
→
08/02 18:59, , 1F
08/02 18:59, 1F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章