ファイルの文字コード変換(iconv)

ファイルの文字コード変換(iconv)

Linux(FreeBSD)ファイルの文字コード変換(iconv)

仕事で EUC の文字コードのファイルしか受け付けないシステムがあったので、nkf で文字コードを変換しようと思ったら入ってない。まあ、こんな時は iconv しかシェルで頼るものはないのですが、さすがにこれは入ってました。
(この場合は、とある IBM AIX のサーバ)

さてさて、iconv は一般的には変換元と変換先の文字コードの両方を指定するのですが、その文字コード文字列が OS によって大きく違うので要注意です。例えば、FreeBSD だとシフト JIS は SHIFT_JIS を、EUC は EUC-JP、ユニコード(unicode)だと UTF-8 が一般的でしょうか。

これが AIX になると、シフト JIS は IBM-943(IBM-932)、EUC は IBM-eucJP、ユニコード(unicode)は同じく UTF-8 です。使える文字コードについては iconv の -l オプションで確認できます。

$ iconv -l

$ iconv -h
Usage: iconv [-c] [-s] [-f fromcode] [-t tocode] [file ...]
or:    iconv -l

ちなみに、iconv の文字コード変換ですが、使い方は下記の通りです。変換前の文字コードと変換後の文字コードを指定したら、変換後の結果が標準出力に出力されます。

# UTF-8
$ cat saratoga.txt 

文字コードはUTF-8です


# UTF-8 --> EUC-JP
$ iconv -f UTF-8 -t EUC-JP saratoga.txt > saratoga_euc.txt

# saratoga_euc.txt を EUC が読み込めるテキストエディタで開く

文字コードはUTF-8です

nkf が使えたらそっちが早いかもしれませんが iconv も覚えておいて損はありません。perl だと jcode とか使ってガリガリするのでしょうか。以前「Perlでnkfを使う」の記事を書いたのを思い出しました。

最終更新日:

関連記事

人気記事

新着情報