WindowsでファイルのBOMを付けたり消したりする

友達に訊かれたので記録。

他所の会社から毎日送られてくるCSVファイルに突然がつかなくなったけど、自分の部署のツールはBOMがついているCSVしか読めないツールを使っていて、自動での連携が動かなくなったんだそうです。まあツールってのはExcelなんですが、BOMがついてないCSVだとファイルがUTF-8だと自動認識してくれない作りなんだと。

相手に「BOMつけて送ってよ」って言えば、と答えたんだけど、会社をまたぐことなので難しいし時間が掛かりそうということ。OSはWindows。

対処法としては、「コマンドラインでUTF-8テキストのBOMを追加したり削除したりする」に書いてあることを実施しているだけですが。

ICUのページから、検索ボックスで”Windows download”で検索し、ツールのダウンロードページを探す。ICU(バージョン)のバージョン番号の大きなものを開く、番号が大きくても(Release Candidate = リリース候補)とかは安定してるかわからないので避ける。

Binary Downloadで、Windowsのバイナリが二つある。自分のWindowsが64bitなら64bit版を、32bitか不明なら32bit版をダウンロードして展開する。

icu\bin\uconv.comと、同じ場所にあるicu*.dll (icuで始まる拡張子が.dllのファイル全部)を、変換作業を行なうディレクトリにコピー。(または、PATHが通った場所にコピー)

コマンドプロンプトで試す。BOMのついたcsvが received.csv だとしたら、

> uconv -f utf-8 -t utf-8 –add-signature received.csv > received.bom.csv

を実行すると、BOMがついたCSVができるので、これで開けるようになります。

あとは、このコマンドを、毎日のファイル受信直後に実行するようにタスクスケジューラーを指定するとかで対処できるのでは、と回答しました。

コメントを残す

メールアドレスが公開されることはありません。