ファイルの文字コード変換(iconv)
※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい
2008-07-24
仕事で 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を使う」の記事を書いたのを思い出しました。
関連記事
上記の記事に関連する記事(最新の10件)です。


