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
がそのまま出力されます。円マークがエスケープ文字ではなく、ただの円記号として変換されているのでエスケープ文字に置換しましょう。見た目が同じなだけに気づきにくいです。