確保PHP 中UTF-8 CSV 輸出的Excel 相容性
雖然使用UTF-8 進行CSV 導出對於正確的字元編碼關重要,使用者在將此類文件匯入Microsoft Excel 時經常遇到問題。要解決此問題,了解 Excel 對 UTF-8 CSV 檔案的處理至關重要。
解決方案在於在 CSV 檔案的開頭包含位元組順序標記 (BOM)。 BOM 是一個三位元組序列,用於標識 UTF-8 字元編碼。透過合併它,Excel 可以正確地將檔案解釋為 UTF-8,從而能夠正確顯示和解釋特殊字元。
要合併BOM,請如下修改PHP 程式碼:
header('Content-type: text/csv; charset=UTF-8'); header('Content-Disposition: attachment; filename=CHS.csv'); echo "\xEF\xBB\xBF"; // UTF-8 BOM
BOM 可以作為文字字串添加,如上所示,或使用pack() 函數動態產生:
$bom = pack("CCC", 0xef, 0xbb, 0xbf); echo $bom;
透過將BOM 新增至在CSV 輸出中,您可以確保Excel 正確解釋檔案的字元編碼並正確顯示特殊字元。根據報道,此解決方案可在 Windows 版 Excel 2007 中執行,也可能適用於 Mac OS 版 Excel。
以上是如何確保 PHP 產生的 UTF-8 CSV 檔案與 Microsoft Excel 相容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!