PHP での UTF-8 CSV 出力に対する Excel 互換性の確保
CSV エクスポートに UTF-8 を使用することは、適切な文字エンコーディングのために不可欠ですが、ユーザーは、このようなファイルを Microsoft Excel にインポートするときに問題に遭遇することがよくあります。この問題に対処するには、Excel による UTF-8 CSV ファイルの処理を理解することが重要です。
解決策は、CSV ファイルの先頭にバイト オーダー マーク (BOM) を含めることにあります。 BOM は、UTF-8 文字エンコーディングを識別する 3 バイトのシーケンスです。これを組み込むことで、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 中国語 Web サイトの他の関連記事を参照してください。