JFP ユーザーズガイド

フィルタを使ったコード変換

現在、日本語文字コードには、JFP で採用している日本語 EUC 、PCK のほかに、JIS コード、UTF8 などがあります。

Sun のネットワーク機能を使って他のマシンからファイルをコピーする場合や、他のマシンへファイルを転送する場合、日本語文字コードが違うと、そのままでは文字化けを起こして使用できません。このような場合は、コード変換フィルタを使用します。コード変換フィルタとは、異なる日本語文字コード間で、ファイル中の漢字コードを変換するフィルタのことです。たとえば日本語 EUC から JIS コードへの変換や、その逆の変換を行うフィルタがあります。

Solaris では、『X/Open Portability Guide Issue 4.2 (XPG4.2)』の規定に準拠した iconv コマンドがサポートされています。iconv は、次のような書式で使用します。


sun% iconv -f <変換元文字コード> -t <変換先文字コード> [filename...]

JFP は、この iconv に対応した、日本語文字コード用の変換モジュールを提供しています。iconv コマンドについては、iconv(1) および iconv_ja(5) のマニュアルページを参照してください。また、iconv(3C) インタフェースを使用する開発者は、『JFP 開発ガイド』も参照してください。

表 6-1 iconv コマンドによる変換
 変換元文字コード 変換先文字コード
eucJPPCK
eucJPISO-2022-JP
eucJPISO-2022-JP.RFC1468
eucJPJIS7
eucJPSJIS
eucJPUTF-8
eucJPUTF-8-Java
eucJPjis
eucJPibmj
eucJPibm5026
eucJPibm5035
eucJPibm930
eucJPibm931
eucJPibm939
SJISeucJP
SJISISO-2022-JP
SJISUTF-8
SJISjis
SJISibmj
PCKeucJP
PCKUTF-8
PCKUTF-8-Java
PCKISO-2022-JP
PCKISO-2022-JP.RFC1468
PCKjis
PCKibmj
PCKibm5026
PCKibm5035
PCKibm930
PCKibm931
PCKibm939
ISO-2022-JPeucJP
ISO-2022-JPPCK
ISO-2022-JPSJIS
ISO-2022-JPUTF-8
UTF-8eucJP
UTF-8SJIS
UTF-8PCK
UTF-8ISO-2022-JP
UTF-8ISO-2022-JP.RFC1468
UTF-8ibm5026
UTF-8ibm5035
UTF-8ibm930
UTF-8ibm931
UTF-8ibm939
UTF-8ms932
UTF-8UTF-8-ms932
UTF-8-ms932UTF-8
UTF-8-JavaeucJP
UTF-8-JavaPCK
JIS7eucJP
jiseucJP
jisPCK
jisSJIS
ibmjeucJP
ibmjPCK
ibmjSJIS
ibm5026PCK
ibm5026UTF-8
ibm5026eucJP
ibm5035PCK
ibm5035UTF-8
ibm5035eucJP
ibm930PCK
ibm930UTF-8
ibm930eucJP
ibm931PCK
ibm931UTF-8
ibm931eucJP
ibm939PCK
ibm939UTF-8
ibm939eucJP
ms932UTF-8

上記の文字コードの意味は以下のとおりです。

表 6-2 iconv で使用する文字コードの意味
 文字コード 意味
eucJP 日本語 EUC
PCK PCK
SJIS PCK と同じ
ISO-2022-JP ISO 2022 情報交換用符号による G0 への指示機能を使って、"UI-OSF 日本語環境実装規約 Version 1.1" の規定に従って表現された ISO 646 IRV または JIS X 0201、JIS X 0208、JIS X 0212
ISO-2022-JP.RFC1468 ISO 2022 情報交換用符号による G0 への指示機能を使って、RFC1468 (Request for Comments: 1468 Japanese Character Encoding for Internet Messages) の規定に従って表現された ISO 646 IRV または JIS X 0201-1976 (キャラクタ集合を除くカタカナ用図形) および JIS X 0208-1983
JIS7 ISO-2022-JP と同じ
jis JLE、JFP 2.4 以前に提供されていた 7 ビット JIS コード
ibmj IBM 漢字コード
UTF-8 UNICODE
UTF-8-Java Java で実装されている UNICODE
ibm930

IBM CCSID (Coded Character Set Identifier) 930 

SBCS はカタカナと英小文字両方をサポート。SBCS の英小文字に割り当てるコードはコードページ 37 (米国/カナダ) とは異なる。MBCS 中のユーザー定義文字領域は 4370 文字分 

ibm931

IBM CCSID (Coded Character Set Identifier) 931 

SBCS はカタカナをサポートしない。MBCS は ibm930 と同じ 

ibm939

IBM CCSID (Coded Character Set Identifier) 939 

SBCS はカタカナと英小文字両方をサポート。SBCS の英小文字に割り当てるコードはコードページ 37 (米国/カナダ) と同じ。MBCS は ibm930 と同じ 

ibm5026

IBM CCSID (Coded Character Set Identifier) 5026 

MBCS 中のユーザー定義文字領域が 1880 文字分であることを除き ibm930 と同じ。iconv の動作は ibm930 と同じ 

ibm5035

IBM CCSID (Coded Character Set Identifier) 5035 

MBCS 中のユーザー定義文字領域が 1880 文字分であることを除き ibm939 と同じ。iconv の動作は ibm939 と同じ 

ms932 WindowsNT 3.51 がマイクロソフトコードページ 932 と Unicode の間で行う変換に基づいた変換を行う
UTF-8-ms932 ms932 からの変換の結果得られるコードセット (UTF-8、eucJP、PCK など)と、ms932 以外のコードセットからの変換の結果得られる UTF-8 との間で変換可能

JLE 1.x との互換性を持つコード変換フィルタのコマンドには、次のものがあります。

表 6-3 コード変換フィルタコマンド
 コマンド 機能
jistoeuc JIS コードを日本語 EUC に変換
jistosj JIS コードを PCK に変換
euctojis 日本語 EUC を JIS コードに変換
euctosj 日本語 EUC を PCK に変換
sjtojis PCK を JIS コードに変換
sjtoeuc PCK を日本語 EUC に変換
ibmjtoeuc IBM 漢字コードを日本語 EUC に変換
euctoibmj 日本語 EUC を IBM 日本語コードに変換

ただし、これらには以下の制限事項があるため、なるべく iconv(1) コマンドを使用してください。