今日、クラスメートから、PHP で生成された CSV ファイルを Excel で開くと文字化けが発生する理由を尋ねられました。以下に、この方法がすべての友人に役立つことを願っています。
Baiduで検証した結果、判明しました
PHP で生成された UTF-8 でエンコードされた CSV ファイルを Excel で開くと、中国語で文字化けが表示されます。これは、出力された CSV ファイルに BOM が含まれていないためです。
簡単に対処するだけです
それでは、PHP で BOM を出力するにはどうすればよいでしょうか?
すべてが出力される前
コードは次のとおりです | コードをコピー |
print(chr(0xEF).chr(0xBB).chr(0xBF)); |
例: php が csv を生成する場合、次のことができます
コードは次のとおりです | コードをコピー |
$now = gmdate("D, d M Y H:i:s");
header("有効期限: 2001 年 7 月 3 日火曜日 06:00:00 GMT");
header("キャッシュ制御: max-age=0、キャッシュなし、必須再検証、プロキシ再検証");
header("最終更新日: {$now} GMT");
|
ここでUTF-8を選択すると、画像のように文字化けが解消されていることがわかります。
補足: UTF-8 は、インターネット上で最も広く使用されている Unicode
エンコーディングの実装です。 UTF-8 の最大の特徴の 1 つは、可変長エンコード方式であることです。シンボルを表すのに 1 ~ 4 バイトを使用でき、バイト長はシンボルによって異なります
http://www.bkjia.com/PHPjc/633200.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/633200.html技術記事今日、クラスメートから、PHP で生成された CSV ファイルを Excel で開くと文字化けして表示されるのはなぜなのかと尋ねられました。以下に、この方法がすべての友人に役立つことを願っています。