就是CSV檔如果用EXCEL開中文的部份就會變亂碼,即使我檔案裡面明明是UTF8也一樣。
查了一下,就是要在檔案加上BOM,讓EXCEL知道檔案的編碼是UTF8
網路上可以查到很方便的解法,它是在CLI下運作的:
sed -i '1s/^\(\xef\xbb\xbf\)\?/\xef\
如果前面有加了就不要再加 如果沒有加就加
sed -i '1s/^/\xef\xbb\xbf/' test.csv
不管怎麼樣都要加。
以上這兩個都是好方法,我測試時不管是丟在PHP程式裡再用exec來執行或在CLI手動執行時都正常。但放在網頁執行就有問題。大概又是那些要加反斜線 (\)之類的問題。但試了一下都沒有解決。於是我去找其它不需要加反斜線的解法,就像下面這行:
exec("printf '\xEF\xBB\xBF' | cat - tmp.csv > policies-out.csv");
在網頁環境執行PHP一樣可以跑。
網誌管理員已經移除這則留言。
回覆刪除