現在、日本語文字コードには、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 コマンドによる変換| 変換元文字コード | 変換先文字コード |
|---|---|
| eucJP | PCK |
| eucJP | ISO-2022-JP |
| eucJP | ISO-2022-JP.RFC1468 |
| eucJP | JIS7 |
| eucJP | SJIS |
| eucJP | UTF-8 |
| eucJP | UTF-8-Java |
| eucJP | jis |
| eucJP | ibmj |
| eucJP | ibm5026 |
| eucJP | ibm5035 |
| eucJP | ibm930 |
| eucJP | ibm931 |
| eucJP | ibm939 |
| SJIS | eucJP |
| SJIS | ISO-2022-JP |
| SJIS | UTF-8 |
| SJIS | jis |
| SJIS | ibmj |
| PCK | eucJP |
| PCK | UTF-8 |
| PCK | UTF-8-Java |
| PCK | ISO-2022-JP |
| PCK | ISO-2022-JP.RFC1468 |
| PCK | jis |
| PCK | ibmj |
| PCK | ibm5026 |
| PCK | ibm5035 |
| PCK | ibm930 |
| PCK | ibm931 |
| PCK | ibm939 |
| ISO-2022-JP | eucJP |
| ISO-2022-JP | PCK |
| ISO-2022-JP | SJIS |
| ISO-2022-JP | UTF-8 |
| UTF-8 | eucJP |
| UTF-8 | SJIS |
| UTF-8 | PCK |
| UTF-8 | ISO-2022-JP |
| UTF-8 | ISO-2022-JP.RFC1468 |
| UTF-8 | ibm5026 |
| UTF-8 | ibm5035 |
| UTF-8 | ibm930 |
| UTF-8 | ibm931 |
| UTF-8 | ibm939 |
| UTF-8 | ms932 |
| UTF-8 | UTF-8-ms932 |
| UTF-8-ms932 | UTF-8 |
| UTF-8-Java | eucJP |
| UTF-8-Java | PCK |
| JIS7 | eucJP |
| jis | eucJP |
| jis | PCK |
| jis | SJIS |
| ibmj | eucJP |
| ibmj | PCK |
| ibmj | SJIS |
| ibm5026 | PCK |
| ibm5026 | UTF-8 |
| ibm5026 | eucJP |
| ibm5035 | PCK |
| ibm5035 | UTF-8 |
| ibm5035 | eucJP |
| ibm930 | PCK |
| ibm930 | UTF-8 |
| ibm930 | eucJP |
| ibm931 | PCK |
| ibm931 | UTF-8 |
| ibm931 | eucJP |
| ibm939 | PCK |
| ibm939 | UTF-8 |
| ibm939 | eucJP |
| ms932 | UTF-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) コマンドを使用してください。
日本語 EUC との変換を行うコマンドは、JIS X 0212-1990 (補助漢字) をサポートしていません。
PCK との変換を行うコマンドは、『TOG (The Open Group) 日本ベンダ協議会推奨 日本語 EUC・シフト JIS 間コード変換仕様』に基づく変換をサポートしていません。『TOG 日本ベンダ協議会推奨 日本語 EUC・シフト JIS 間コード変換仕様』については、付録 A 「文字コード変換規則」 を参照してください。
JIS との変換を行うコマンドは、更新番号を含むエスケープシーケンスに対応していません。