Edited at

UTF-8 な CSV を Excel が読めるように先頭 BOM をつけるシェルスクリプト

More than 1 year has passed since last update.


こんな感じのを用意した。

超単純

#!/usr/bin/env bash

printf '\xef\xbb\xbf'
exec cat

なんとなく bomber というファイル名にして実行可能にし、パスを通した。

$ cat > ~/.bin/bomber << 'EOF'

#!/usr/bin/env bash
printf '\xef\xbb\xbf'
exec cat
EOF
$ chmod +x ~/.bin/bomber


使い方

ごく単純。

$ bomber < example.before.utf8.csv > example.after.utf8.csv


背景

(日本語環境の) Excel は BOM がなければ CP932 エンコーディングで CSV ファイルを読もうとする。

BOM アリだとちゃんと判別できる。

親切なブラウザのように、勝手に判定してはくれない。

Wikipedia: バイトオーダーマーク


注意

はっきりとしたバージョンはわからないが Excel 2007 などの古い Excel 環境では、この方法でも文字化けせずに開く事はできない。