2020-06-04

Linuxでファイルの文字コードを変換する

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

猫派 / 基本インドア / ガジェット大好き / RDP推進派
コロナ禍の趣味はPC+VRでゲーム。
最近のゲーム:Factorio / BeatSaber / にゃんこ大戦争

→ Policy