Linuxでファイルの文字コードを変換する
create: 6/4/2020
Raspberry Pi Linux

ダウンロードしてきたスクリプトファイルが SJIS で、UTF-8 にして使いたいときとか。
ieserver.net のサンプル DDNS 更新用 Perl プログラムとかね。

iconv を使う

iconv コマンドを使いましょう。

iconv -f sjis -t utf8 target-sjis-file.txt > new-utf8-file.txt

オプション

  • -f: from 文字コード。入力となるファイルの現在のの文字コード
  • -t: to 文字コード。出力先の新しいファイルの文字コード
  • target: 入力元ファイル名

出力は標準出力になるので、パイプするなり書き出すなり。

ieserver のサンプルコードは注意

  • サンプルコード 51 行目の ~ に変換されてしまうので、手動で ~ に直しましょう。
  • 改行の \n がそのまま出力されます。円マークがエスケープ文字ではなく、ただの円記号として変換されているのでエスケープ文字に置換しましょう。見た目が同じなだけに気づきにくいです。