1. ホーム
  2. excel

[解決済み] Microsoft Excelは.csvファイルのダイアクリティクスを混乱させますか?

2022-04-21 09:29:52

質問

私は、プログラムによってデータを(PHP 5.2を使用して).csvテストファイルにエクスポートしています。

データ例 Numéro 1 (アクセント記号のeに注意)。 このデータは utf-8 (プリペンドBOMなし)。

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

これをテキストエディタ(UltraEdit)で開くと、正しく表示されるのですが。 UEによると、この文字は decimal 233 .

どうすれば テキストをエクスポート のデータを.csvファイルに保存します。 MS Excelで正しく表示されるように できれば、インポートウィザードやデフォルト以外のウィザード設定を使用することなく、インポートしたいのですが。

解決方法は?

正しくフォーマットされたUTF8ファイルには バイトオーダーマーク を最初の3オクテットとする。 これらは16進数の値0xEF, 0xBB, 0xBFである。 これらのオクテットは、ファイルをUTF8としてマークする役割を果たします(quot;バイトオーダー"情報としては関係ないため)。 1 このBOMが存在しない場合、消費者/読者はテキストのエンコーディング・タイプを推測することになる。 UTF8が使えないリーダーは、バイトをWindows-1252のような他のエンコーディングとして読み、以下のような文字を表示します。  をファイルの先頭で表示します。

UTF8 の CSV ファイルをファイルアソシエーションで開くと、Excel が 1 バイトのエンコーディングであると判断する不具合があることが知られています。 無視する UTF8 の BOM の存在。これは ない システムのデフォルトのコードページや言語設定によって修正されます。 BOMは、Excelでは手がかりになりません。(少数意見として、BOMがテキストのインポートウィザードを起動させることがあると報告されています。) このバグは、Excel 2003以前のバージョンに存在するようです。 Excel 2007以降では修正されているとの報告がほとんどです。

注意事項 できる Excel で UTF8 の CSV ファイルを開く場合、quot;Import Text" ウィザードを使用すると、開くファイルのエンコーディングを指定することができます。 もちろん、この方法はあまり便利ではありません。

この回答を読んでいる方は、特にExcel < 2007をサポートしているわけでもないのに、生のUTF8テキストをExcelに送ってしまい、Excelがそれを誤って解釈して、テキストに Ã といったWindows-1252の文字が含まれています。 UTF8 BOMを追加するのが、おそらく最良かつ最短の修正方法です。

古いExcelを使用しているユーザーで、CSVの消費者がExcelだけである場合、UTF8の代わりにUTF16をエクスポートすることによって、これを回避することができます。 Excel 2000と2003では、これらをダブルクリックで正しく開くことができます。 (他のテキストエディタではUTF16に問題がある場合もあるので、慎重に検討する必要があるかもしれません)。


<サブ * Excel 2011 for Macのインポートウィザードは、あなたが何を言おうとも、実際にはすべてのエンコーディングに対応できるわけではありません。