文字コードの変更
文字コードを変更するには iconv コマンドが使えます。
文字コードを考えるには、文字集合や符号化方式 (エンコーディング) を考える必要がありますが、 ここではいろいろひっくるめてどれも「文字コード」という言葉で済ませます。
サポートされる文字コードの一覧は -l オプションで表示できます。
$ iconv -l
変換前の文字コードを -f オプションで指定して、変換後の文字コードを -t オプションで指定します。
$ iconv -f 変換前の文字コード -t 変換後の文字コード 入力ファイル
例えば、UTF-8 のテキストファイル file1.txt を読み取り、 SHIFT-JIS にして file2.txt として保存するには次のようにします。
$ iconv -f UTF-8 -t SHIFT-JIS file1.txt > file2.txt
入力は標準入力からも入力できます。結果は標準出力に出力されるので、ファイルに保存するには上のようにリダイレクトすれば OK です。
リダイレクトではなく、出力ファイルを -o オプションで次のように指定することも可能です。
$ iconv -f UTF-8 -t SHIFT-JIS -o file2.txt file1.txt
念のため、本当に文字コードが変換されているか確認するには、次のように xxd コマンドで文字コードを HEX 表示することで確認できます。
$ cat file1.txt | xxd 00000000: e383 86e3 82b9 e383 880a .......... $ cat file2.txt | xxd 00000000: 8365 8358 8367 0a .e.X.g.
どちらも「テスト」という文字のバイトシーケンスで、file1.txt は UTF-8 で、file2.txt は Shift JIS になっています。
以上、文字コードの変換を行う iconv コマンドを紹介しました。