2008年12月4日木曜日

UTF-8なCSVファイルをExcel用に変換するコマンド


[備忘録]
iconvで文字エンコードを変換すると、UTF-16BE/LEのBOM付加を制御できない(BOMがつかない)。
しかし、エクセルでUnicodeなCSVファイルを読み込ませる為には、BOM付きのUTF-16LEである必要がある。
nkfを使えば良いが、マシンにインストールされていなかったりする場合には、下記のように手動でBOMを付加するワークアラウンドでなんとかなる。

$ shopt -s xpg_echo
$ (echo '\xFF\xFE\c' & iconv -f UTF-8 -t UTF-16LE file_utf8.tsv) > file_excel.csv

csvという拡張子にしているが、タブ区切りのまま変換するのがミソ(つまり、変換前のファイルはタブ区切りで用意しておくこと)

0 件のコメント: