JFP ユーザーズガイド

第 6 章 日本語環境用 SunOS コマンド

この章では、JFP によって日本語環境用に提供される SunOS コマンドについて説明します。

フィルタを用いたコード変換

現在、日本語文字コードには 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 コマンドについては、iconv(1) および iconv_ja(5) のマニュアルページも参照してください。また、iconv(3) インタフェースを使用したい開発者の方は、『JFP 開発ガイド』の第 4 章「日本語文字コード変換」もあわせて参照してください。

表 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

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

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-Java

eucJP

UTF-8-Java

PCK

JIS7

eucJP

jis

eucJP

jis

PCK

jis

SJIS

ibmj

eucJP

ibmj

PCK

ibmj

SJIS

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

文字コード

意味 

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 

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

表 6-2 コード変換フィルタコマンド

コマンド 

機能 

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) コマンドでの使用をお勧めします。

漢字端末と日本語入力

TTY 環境に構成に使用するコマンドは sttysetterm、および jtty です。これらのコマンドの使用については、各マニュアルページを参照してください。ここでは日本語端末を seeterm で構築する上で使用される、日本語文字コード変換 STREAMS モジュールについて説明します。

JFP は、端末ベースの入出力に対して日本語の処理機能を提供しています。その中でいろいろな種の端末とのインタフェースを取るために setterm で端末を設定することによって扱う文字コード (ロケールにより設定される) と端末の文字コードの違いをコード変換することによって吸収したり、STREAMS 内部で日本語文字コードが正しく扱うことができるような設定をしたりします。

たとえば、ja ロケールで PCK 漢字端末が接続されている場合、入力は日本語 EUC に変換され、端末への出力は PCK に変換されます。

漢字端末を設定する setterm コマンドは、次のような書式で使用します。

sun% setterm [ -x name ] [ -t ] 

日本語文字コード変換 STREAMS モジュール

JFP では、setterm コマンドで漢字端末を設定できるように、以下のような日本語文字コード変換 STREAMS モジュールを提供しています。

表 6-3 日本語文字コード変換 STREAMS モジュール

コード変換 STREAMS モジュール 

説明 

jconvs

PCK 端末用 

jconv7

7 ビット JIS 端末用 

jconv8

8 ビット JIS 端末用 

jconvu

UTF-8 端末用 

jconvrs

ja_JP.PCK ロケール用 

jconvru

ja_JP.UTF-8 ロケール用 

  

現在のロケールと設定したい端末名に応じて、適当な STREAMS モジュールが setterm コマンドを通して設定されます。以下は、setterm-x オプションで指定可能な端末名です。


注 -

日本語ロケール間でロケールを切り替える場合は、その都度、端末設定も行うようにしてください。これらのロケール間では push される STREAMS モジュールが異なるため、再度 setterm が実行されないと正しく表示できなくなります。


表 6-4 setterm 端末名

端末名 

説明 

JapanPCK

PCK

JapanSJIS

SJIS

PCK 端末用 

JapanNewJIS8

NewJIS8

8 ビット新 JIS 端末用 

JapanNewJIS7

NewJIS7

7 ビット新 JIS 端末用 

JapanOldJIS8

OldJIS8

8 ビット旧 JIS 端末用 

JapanOldJIS7

OldJIS7

7 ビット旧 JIS 端末 

JapanEUC

GenericEUC

EUC

日本語 EUC 端末用 

UTF-8

UTF-8 端末用 

ASCII

ASCII 端末用 

Error

setterm を行なった際のエラー復旧用

sane

STREAMS のリセット用 

mailx/in.comsat でのコード変換

複数バイト言語国際化のために拡張された mailx を用いると、日本語 EUC で書かれたメールメッセージは自動的に JIS コードに変換されて送信されます。このようにして変換されたメッセージは受信後、typeprint などメッセージを画面に表示するコマンドにより EUC に変換されて表示されます。また、savecopywrite などのコマンドにより EUC に変換されて格納できます。この変換は、フォルダ内のコードを決定するために用意されたメール変数 folderconv が設定されている場合に実行されます。folderconv が設定されていない場合、メッセージはコード変換されずに格納されます。folderconv はデフォルトで設定されています。また、folderconv がどのような指定の場合でもコード変換をしないで格納するためのコマンドとして、nsavencopy が用意されています。

複数バイト言語国際化のために拡張された in.comsat は、到着メールを JIS コードから EUC に変換して表示します。

使用方法は、第 5 章「国際化 SunOS コマンドの利用」「国際化 SunOS コマンドの利用の「電子メールの送受信」を参照してください。