[WebDev]PHP export CSV檔案時中文亂碼問題
12/04/2014前幾天發現了PHP一些奇特的事情.....
就是...當我正準備以一個php script把資料由Mysql export csv file時, 發現無論無樣設定encoding, 用Microsoft excel把檔案打開時, 中文還是會出現亂碼....但在Notepad++看卻正常
明明一切也是UTF-8了...
最後高人給了我一句echo statment , 一切便解決了...
header("Content-type: text/csv;charset=utf-8");
header("Content-Disposition: attachment; filename=filename.csv");
header("Pragma: no-cache");
header("Expires: 0");
echo "\xEF\xBB\xBF";
echo "column1,column2,column3\n";
\xEF\xBB\xBF
原來是UTF-8 的BOM(byte of mark) ! 雖然這是optional 的, 但萬一如果讀取檔案時的程式使用BOM但encoding時卻沒有,便會需要把這個BOM放回在整個 text/file stream的最開頭了~Wikipedia 也有詳細的解釋 http://en.wikipedia.org/wiki/Byte_order_mark
其實阿Notepad++也早已給了我提示了...... |
0 意見