より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

Windowsの時、iconvでUTF-8 > SJIS変換に失敗する時は、cp932

テストのために以下の手順を延々と行ってました。

  1. スプレッドシートからUTF-8形式のcsvダウンロード
  2. FCCheckerでShift-JIS形式に文字コード変換

FCCheckerは便利なファイル一括文字コード変換ツールですが、バッチで動かした方が早くね?と

そういえば、Linuxコマンドでiconvがあったなあと。

www.atmarkit.co.jp

Windowsだったのですが、今ではGitForWindowsやWSLでLinuxコマンドを使う術はあります。

そこで動かしたところ、変換エラーが発生しました。

分報に書いたところ、同僚が

Windowsの場合は、SJISではなく、cp932だと成功することありますよ

とコメントしてくれました。

実際にやってみたところ成功しました。言われない気づかずに丸一日終わるところでした。

ありがとう同僚、ありがとう分報。

結果以下のようなバッチを作成しました。

直下のフォルダのcsvファイルをSJISに変換して、元ファイルを削除するものです。

for f in `ls *csv`; do iconv -f utf8 -t cp932 < $f > sjis_$f; rm $f; done

補足

自宅でGitForWindowsで動かしていたところ、utf8ではなく、utf-8である必要がありました。ただ、SJISでも上手くいきました。