Excel 2003 の CSV と Unicode の関係

@IT に Csvde.exeについて という投稿がありました。
その中に Unicode 形式で出力したCSVファイルを Excel で開くと適切に表示されないという指摘があったので調査してみました。

結果、CSVファイルをダブルクリックして Excel 2003 で開いたときに Excel がカンマを区切り文字として自動的に認識してくれる Unicode のエンコーディングは UTF-7 と UTF-8 で、csvde.exe が -u パラメータ付きのときに出力する UTF-16 LE には対応していないことが分かりました。

その他調査の過程で分かったことをまとめます。
調査に使用したテキストファイルのエンコーディングは以下の5種です。

Shift_JIS(CP932) 形式
UTF-7 形式
UTF-8 形式
UTF-16 LE 形式
UTF-16 BE 形式

CSVファイルの改行方法は全て CR+LF です。
カンマ区切り、タブ区切り共に拡張子は csv としました。

カンマ区切りのファイルをダブルクリックして Excel 2003 で開いたとき
Shift_JIS : 区切り文字を自動で認識して問題なく開く。
UTF-7 : 区切り文字は認識されるが文字化けする。
UTF-8 : 区切り文字は認識されるが文字化けする。
UTF-16 LE : 区切り文字が認識されない。文字は正常に表示される。
UTF-16 BE : 区切り位置、内容共に目茶苦茶。

タブ区切りのファイルをダブルクリックして Excel 2003 で開いたとき
Shift_JIS : 区切り文字が認識されない。文字は正常に表示される。
UTF-7 : 区切り文字が認識されない。文字化けする。
UTF-8 : 区切り文字が認識されない。文字化けする。
UTF-16 LE : 区切り文字を自動で認識して問題なく開く。
UTF-16 BE : 区切り位置、内容共に目茶苦茶。

カンマ区切りのファイルを Excel 2003 の[開く]メニューから開いたとき
Shift_JIS : 区切り文字を自動で認識して問題なく開く。
UTF-7 : 区切り文字は認識されるが文字化けする。
UTF-8 : テキスト ファイル ウィザード が表示される。
UTF-16 LE : テキスト ファイル ウィザード が表示される。
UTF-16 BE : 区切り位置、内容共に目茶苦茶。

タブ区切りのファイルを Excel 2003 の[開く]メニューから開いたとき
Shift_JIS : 区切り文字が認識されない。文字は正常に表示される。
UTF-7 : 区切り文字が認識されない。文字化けする。
UTF-8 : テキスト ファイル ウィザード が表示される。
UTF-16 LE : テキスト ファイル ウィザード が表示される。
UTF-16 BE : 区切り位置、内容共に目茶苦茶。

以上、こんな感じでした。

Published 金, 7 14 2006 15:05 by Ryosuke Uemoto
Filed under:

Comments

# re: Excel 2003 の CSV と Unicode の関係

興味深い現象ですね。
テスト項目として、次の項目も検討していただけませんでしょうか。

* BOM がある場合と、ない場合
* 「外部データの取り込み」の動作
* 「外部データの取り込み」での「元のファイル(O)」に表示される文字コードの表示.
* ShiftJIS にない文字が化けていないかどうか (例: 立方メートル)

UTF-8 (BOMなし) を「開く」メニューで開いた場合、ウィザードは動作せず、文字化けが発生しました。
UTF-16LE を「外部データの取り込み」した場合、元のファイル(O)は、「932: 日本語 (シフトJIS)」となりました。

UTF-16BE にまったく対応していないのは、まずいですよね。

ご検討いただければと思います。

2006年8月6日 4:36 by 河端善博

# Excel 2003 の CSV と 文字エンコーディング の関係

この記事は Excel 2003 の CSV と Unicode の関係 の改訂版です。改訂前の記事に PASSJ 理事の河端善博さんから改訂に必要な情報をコメントして頂きました。河端さん、ありがとうございました。...

2006年8月7日 15:33 by Hello Another World!

# re: Excel 2003 の CSV と Unicode の関係

河端さん、コメントありがとうございます。

ご提案いただいた項目を追加した調査結果を投稿しました。
Excel 2003 の CSV と 文字エンコーディング の関係

>UTF-16BE にまったく対応していないのは、まずいですよね。
ここまで UTF-16BE の対応がマズいとは思っていませんでした。
Excel 2007 も検証してみたいと思います。

2006年8月7日 17:37 by Ryosuke Uemoto

# Excel 2003 の CSV と 文字エンコーディング の関係

この記事は Excel 2003 の CSV と Unicode の関係 の改訂版です。 改訂前の記事に PASSJ 理事の 河端善博さん から改訂に必要な情報をコメントして頂きました。 河端さん、ありがとうございました。

2006年9月18日 10:53 by Hello Another World!