(PHP)修復mac book 導出 csv xls xlsx 中文亂碼問題


背景:一般情況下,當我們導出 csv (或xls或xlsx)時,都需要通過文件頭來設置一下文件輸出的文字編碼:

header('Content-Type: application/vnd.ms-excel; charset=utf8');

 

使用utf8編碼的話,一般來說wps好使,office 就不太好使(office打開會亂碼);

然后在很久很久的一段時間里,我都是使用 gbk 或 gb2312 來解決這個問題:

header('Content-Type: application/vnd.ms-excel; charset=gbk');

 

今天才發現,在mac book 環境下,設置 gbk 編碼其實是不行的。也會亂碼。經過百度一下之后,才知道要設置為 gb18030

header('Content-Type: application/vnd.ms-excel; charset=gb18030');

關於gb18030的介紹看這里:https://baike.baidu.com/item/gb18030/3204518

 


 

當然,除了修改文件頭,還要記得修改 echo 出來的內容的編碼,例如輸出標題:

echo mb_convert_encoding(implode(',', array_values($titles)), 'gb18030') . "\n";

 


 

修改后的導出類:

https://www.cnblogs.com/tujia/p/11358096.html

 


完。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM