2011-07-07 3 views
0

は私がトラブルExcelにUTF-8のデータをエクスポートしていたが、私が見つけたので、今は、大丈夫だ本:mb_convert_encodingはどのように機能しますか?

このラインで

Microsoft Excel mangles Diacritics in .csv files?

ルック:私は削除

echo chr(255) . chr(254) . mb_convert_encoding($csv, 'UTF-16LE', 'UTF-8'); 

chr(255)。最初にExcelでUTF-8データを表示できないので、ブラウザではできません。

もちろん、問題はありませんが、chr(255)とchr(254)が必須である理由を知りたいだけです。

答えて

1

ExcelにはByte Order Mark (BOM)が必要と思われます。 BOMは常にファイルの先頭にあり、FFFEまたはFEFFのいずれかです。それは、マルチバイト文字の別々のバイトがどの順番で現れるかを記述する( "前方"または "後方"と言うことができる)。通常は、それを省略することを強く推奨しますが、excelはそれを使用してファイルのエンコーディングを決定します。

+0

ありがとうございました。 – noname

1

ExcelとPHPは、この文字エンコーディングを示すためにBOM(バイトオーダーマーク)の意見が異なります。 chr(255).chr(254)を使用すると、出力を手動で強制して、Excelが望むものにすることができます。 http://nl.wikipedia.org/wiki/Endianness

関連する問題