Microsoft Excel は .csv ファイル内の分音記号を壊しますか? 質問する

Microsoft Excel は .csv ファイル内の分音記号を壊しますか? 質問する

プログラムでデータをエクスポートしています (PHP 5.2 を使用)。.csv テスト ファイルにエクスポートしています。
サンプル データ: Numéro 1(アクセント付きの e に注意してください)。データはutf-8(先頭に BOM はありません) です。

このファイルを MS Excel で開くと、 と表示されますNuméro 1

これをテキスト エディター (UltraEdit) で開くと、正しく表示されます。UE は、文字が であると報告しますdecimal 233

どうやってテキストをエクスポート.csvファイル内のデータなのでMS Excelが正しくレンダリングするできれば、インポート ウィザードの使用や、デフォルト以外のウィザード設定を強制せずに、それを実行したいのですが。

ベストアンサー1

正しくフォーマットされたUTF8ファイルは、バイトオーダーマーク最初の 3 つのオクテットとして。これらは 16 進数値 0xEF、0xBB、0xBF です。これらのオクテットは、ファイルを UTF8 としてマークするために使用されます (「バイト順序」情報としては関係ないため)。1この BOM が存在しない場合は、コンシューマー/リーダーがテキストのエンコード タイプを推測することになります。UTF8 に対応していないリーダーは、バイトを Windows-1252 などの他のエンコードとして読み取り、ファイルの先頭に文字を表示します。

Excelでは、ファイルの関連付けを介してUTF8 CSVファイルを開くと、そのファイルがシングルバイトエンコードであると想定してしまうという既知のバグがあります。無視するUTF8 BOMの存在。これはないシステムのデフォルトのコード ページまたは言語設定によって修正されることはありません。BOM は Excel では機能しません。(少数の報告では、BOM によって「テキストのインポート」ウィザードが起動されることがあると言われています。) このバグは Excel 2003 以前に存在しているようです。ほとんどの報告 (ここでの回答の中で) によると、これは Excel 2007 以降で修正されています。

注意してくださいできる「テキストのインポート」ウィザードを使用すると、開くファイルのエンコードを指定できるため、Excel で UTF8 CSV ファイルを常に*正しく開くことができます。もちろん、これはあまり便利ではありません。

この回答を読んでいる人は、Excel < 2007 を特にサポートしていないが、生の UTF8 テキストを Excel に送信している状況にある可能性が高く、Excel がそれを誤って解釈し、テキストにÃ他の同様の Windows-1252 文字が散りばめられています。UTF8 BOM を追加するのがおそらく最善かつ最も迅速な修正方法です。

古い Excel を使用しているユーザーがいて、CSV の唯一の利用者が Excel である場合は、UTF8 ではなく UTF16 でエクスポートすることでこの問題を回避できます。Excel 2000 および 2003 では、これらをダブルクリックして正しく開くことができます。(他のテキスト エディターでは UTF16 に問題が発生する可能性があるため、オプションを慎重に検討する必要があります。)


* できない場合を除いて、(少なくとも) Excel 2011 for Mac のインポート ウィザードは、何を指示しても、すべてのエンコードで常に機能するとは限りません。</anecdotal-evidence> :)

おすすめ記事