友達に訊かれたので記録。
他所の会社から毎日送られてくる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ができるので、これで開けるようになります。
あとは、このコマンドを、毎日のファイル受信直後に実行するようにタスクスケジューラーを指定するとかで対処できるのでは、と回答しました。