文字コード変換 (iconv)

ファイル文字コードの変換方法
# iconv -f 変換前コード -t 変換後コード 変換前ファイル > 変換後ファイル

主なコードテーブル
文字コード・・・コードテーブル
Unicode・・・ UTF-8
SJIS・・・IBM-943
EUC・・・IBM-eucJP
EBCDIC・・・IBM930

例:SJISUTF-8unicode)に変換する
# iconv -f IBM-943 -t UTF-8 InputFileName > OutputFileName
※補足:AIX上のkshLinux上で参照する場合は上記でOK

注:EBCDICからUnicodeへは直接変換できないので、一度SJISに変換後、Unicodeに変換する

−−−−−−−−−−−−−−−
サポートされている文字コードの表示
# iconv -l
ASCII=GR
CNS118643.1986-1
CNS118643.1986-2
GB18030
GBK
IBM-1027
IBM-1046

・(中略)

UTF-32
UTF-8
big5
ct
fold7
fold8
uucode
#

−−−−−−−−−−−−−−−
参考資料:
AIX FAQ(詳細下記に記載)
・「AIXシステム管理 Tips&Technique(安田晴男)」
・「へっぽこSEの備忘録」様 - Linuxメモ/文字コード変換より
  http://www.techforest.info/87.html
−−−−−−−−−−−−−−−

IBM FAQ:AIXでの文字コード変換について

概要
001018DE【AIXでの文字コード変換について】

内容/目次<<< QUESTION >>> 2007/09/03 11:55:30
(問合せ内容)
Q1. Q1.iconv を使用して EBCDIC,SJIS,および EUC から Unicode へコード変換する場合のコマンド実行例を教えていただけないでしょうか。

コマンド リファレンスを参照したところ、 iconv コマンドの使用法は以下であると考えています。

iconv -f (変換元コード) -t (変換先コード) 入力ファイル > 出力ファイル

 例えば、SJIS ,EBCIDIC ,EUC からUnicode への変換の場合は、以下のように実行すればよいのでしょうか。
    iconv -f SJIS -t Unicode 入力ファイル > 出力ファイル
    iconv -f EBCIDIC -t Unicode 入力ファイル > 出力ファイル
iconv -f EUC -t Unicode 入力ファイル > 出力ファイル
よろしくお願いします。<<< ANSWER >>> 2007/09/03 15:23:29
iconvはコードセットを指定する必要があります。(一覧は iconv -l で参照可能です)AIXでは以下のようにコード名を指定して下さい。

SJIS -> IBM-943
EBCDIC -> IBM-930(またはIBM-939)
EUC -> IBM-eucJP
unicode -> UTF-8

ex.
SJIS->unicode変換の場合
# iconv -f IBM-943 -t UTF-8 input > output

EUC->unicode変換の場合
# iconv -f IBM-eucJP -t UTF-8 input > output

またEBCDICUnicode(UTF-8)間を 直接変換するコンバータは提供されていませんので、間接的にSJISまたはEUCを経て、変換することになります。

ex.
以下のように直接変換が出来ません。
# iconv -f IBM-930 -t UTF-8 outlog1 > outlog2
iconv: 0791-004 コンバーターがオープンできません

そのため、EBCDIC->SJIS->unicodeの様に変換することになります。
# iconv -f IBM-930 -t IBM-943 input > output1; iconv -f IBM-943 -t UTF-8 output1 > output2<<< QUESTION >>> 2007/09/03 22:11:59
回答ありがとうございます。
unicode のコード名として、UTF-7,UTF-16,UTF32 も指定可能でしょうか。<<< ANSWER >>> 2007/09/05 10:28:45
手元の5.3環境の出力を見る限りでは以下がサポートされています。
(le は UTF16なのでリトルエンディアンを指しているものと思われます)

UCS-2, UTF-8, UTF-16, UTF-16le, UTF-32それぞれの間のコンバータですが、UCS-2UTF-16 間のコンバータは提供されていないようです。
Hide details for 確認 確認
#oslevel -s
5300-06-02-0727
# iconv -f UCS-2 -t UTF-16 output1 > output3
iconv: 0791-004 コンバーターがオープンできません
# iconv -f UCS-2 -t UTF-16le output1 > output4
iconv: 0791-004 コンバーターがオープンできません
# iconv -f UTF-16 -t UCS-2 output3 > output1
iconv: 0791-004 コンバーターがオープンできません
# iconv -f UTF-16le -t UCS-2 output4 > output1
iconv: 0791-004 コンバーターがオープンできません

引用元URL:IBM FAQ
http://www-01.ibm.com/support/docview.wss?uid=std389c8c808ef8e43c5492573530022da50

AIX 5L AIX 日本語処理機能ユーザーズ・ガイド
http://publib.boulder.ibm.com/infocenter/systems/topic/com.ibm.aix.doc/doc/langspt/jp_lang_man.pdf