主要參考
1. 除了 header 的下法,其中還有亂碼產生的原因,以及加入BOM的方式說明http://chiahan.logdown.com/posts/280868/web-php-export-csv-chinese-encoding-problem
2. 加入BOM的寫法,在 header 之後用 echo 加入 "\xEF\xBB\xBF"
http://stackoverflow.com/questions/4348802/how-can-i-output-a-utf-8-csv-in-php-that-excel-will-read-properly
相關參考
1. CSV、XLS 等文件輸出格式
https://dotblogs.com.tw/yuru.wei/2011/06/27/30251
2. 連接資料庫輸出的參考
http://www.centerbbs.com/forum.php?mod=viewthread&tid=143119
https://dotblogs.com.tw/yuru.wei/2011/06/27/30251
2. 連接資料庫輸出的參考
http://www.centerbbs.com/forum.php?mod=viewthread&tid=143119
心得
- 原來使用 iconv() 方式來將 utf8 轉 big5 編碼,在資料庫輸出資料時,如果遇到 big5 無法編碼的文字,會略過該筆資料 (對,是略過喔,很可怕!)。
- 如果使用 mb_convert_encoding() 來轉碼,遇到 big5 無法編碼的文字會以「?」來顯示。
- 根據 http://chiahan.logdown.com/posts/280868/web-php-export-csv-chinese-encoding-problem 一文的內容,程式中就不用 iconv() 或 mb_convert_encoding() 來轉碼,直接在文件前加入 BOM 來宣告編碼方式,如此一來輸出的 CSV 檔在 Excel 或記事本中開啟都會是正常的。
- XLS 檔雖然也可以輸出,但用 Excel 開啟時反而會有警告視窗,說格式不符,不如使用 CSV 檔較為方便。
0 意見 :
張貼留言