en_US.UTF-8 ロケール環境を使用するには、まずロケールを選択します。システムに en_US.UTF-8 がインストールされていることを確認してください (コアクラスタ以外のクラスタでデフォルトでインストールされます)。
TTY 環境で、まず環境変数 LANG を en_US.UTF-8 に設定してこのロケールを選択します。C シェルの例を以下に示します。
system% setenv LANG en_US.UTF-8 |
他のカテゴリが設定されていない (または、en_US.UTF-8 に設定されている) ことを確認します。これは、ロケールを設定する際、環境変数 LANG の優先順位が、 LC_ALL、LC_COLLATE、LC_CTYPE、LC_MESSAGES、LC_NUMERIC、 LC_MONETARY、LC_TIME などの他の環境変数に比べて低いからです。環境変数の階層についての詳細は、setlocale(3C) のマニュアルページを参照してください。
system% locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_ALL= |
また、CDE ログイン画面の「オプション」->「言語」メニューで en_US.UTF-8 を選択することにより、en_US.UTF-8 環境を起動することもできます。
現在使用している dtterm(1) のような端末と端末エミュレータに応じて、あるコードセット固有の STREAMS モジュールをストリームにプッシュしなければならない場合があります。
STREAMS モジュールの詳細および一般的なストリームについては、『STREAM Programming Guide』を参照してください。
次の表に、端末環境で en_US.UTF-8 ロケールによりサポートされる STREAMS モジュールを示します。
表 4-6 en_US.UTF-8 によりサポートされる 32 ビット STREAMS モジュール
32 ビット STREAMS モジュール |
説明 |
---|---|
/usr/kernel/strmod/u8lat1 | |
/usr/kernel/strmod/u8lat2 |
UTF-8 と ISO 8859-2 (東ヨーロッパ) のコード変換 STREAMS モジュール |
/usr/kernel/strmod/u8koi8 |
UTF-8 と KOI8-R (Cyrillic) のコード変換 STREAMS モジュール |
次の表に、en_US.UTF-8 ロケールによりサポートされる 64 ビット STREAMS モジュールを示します。
表 4-7 en_US.UTF-8 によりサポートされる 64 ビット STREAMS モジュール
64 ビット STREAMS モジュール |
説明 |
---|---|
/usr/kernel/strmod/sparcv9/u8lat1 |
UTF-8 と ISO 8859-1 (西ヨーロッパ) のコード変換 STREAMS モジュール |
/usr/kernel/strmod/sparcv9/u8lat2 |
UTF-8 と ISO 8859-2 (東ヨーロッパ) のコード変換 STREAMS モジュール |
/usr/kernel/strmod/sparcv9/u8koi8 |
UTF-8 と KOI8-R (Cyrillic) のコード変換 STREAMS モジュール |
STREAMS モジュールをカーネルにロードするには、まずルートになります。
system% su Password: system# |
次のように isainfo(1) ユーティリティを使用して、Solaris システムが 64 ビットと 32 ビットのどちらであるかを判断します。
system# isainfo -v 64-bit sparcv9 applications 32-bit sparc applications system# |
この情報が返された場合は、実行されているのは 64 ビットの Solaris システムです。実行されているのは 32 ビットの Solaris システムである場合は、次のように表示されます。
system# isainfo -v 32-bit sparc applications system# |
modinfo(1M) を使用して、システムにすでに STREAMS モジュールがロードされていないかを確認します。
system# modinfo | grep u8lat1 modulename system# |
u8lat1 などの STREAMS モジュールがすでにインストールされている場合は、出力は次のようになります。
system# modinfo | grep u8lat1 89 ff798000 4b13 18 1 u8lat1 (UTF-8 <--> ISO 8859-1 module) system# |
モジュールがすでにインストールされている場合は、ロードする必要はありません。ただし、モジュールがロードされていない場合は、次のように modload(1M) を使用します。
system# modload /usr/kernel/strmod/u8lat1 modulename |
32 ビットの u8lat1 STREAMS モジュールがカーネルにロードされ、ストリームにプッシュすることができます。64 ビットの Solaris 製品を実行している場合は、次のように modload(1M) を使用します。
system# modload /usr/kernel/strmod/sparcv9/u8lat1 |
STREAMS モジュールがカーネルにロードされ、ストリームにプッシュすることができます。
モジュールをカーネルからアンロードするには、次のように modunload(1M) を使用します。この例では、u8lat1 モジュールがアンロードされます。
system# modinfo | grep u8lat1 89 ff798000 4b13 18 1 u8lat1 (UTF-8 <--> ISO 8859-1 module) system# modunload -i 89 |
Solaris オペレーティング環境の旧リリースとは異なり、UTF-8 コードセットの入出力をサポートする dtterm(1) とその他の端末では、ストリームにその他の追加 STREAMS モジュールを置く必要はありません。ldterm(7M) モジュールは、現在ではコードセットに依存せず、Unicode/UTF-8 もサポートしています。
Unicode ロケールに関する適切な端末環境の設定については、stty(1) ユーティリティを以下のように使用してください。
system% stty defeucw |
/usr/ucb/stty は国際化されていないので、代わりに /bin/stty を使ってください。
Latin-1 (ISO 8859-1)、Latin-2 (ISO 8859-2)、または KOI8-R だけをサポートする端末の場合、STREAMS は次のように構成されている必要があります。
head <-> ttcompat <-> ldterm <-> u8lat1 <-> TTY |
これは Latin-1 をサポートする端末用の構成です。Latin-2 端末の場合は、STREAMS モジュール u8lat1 を u8lat2 に置き換えます。KOI8-R 端末の場合は、このモジュールを u8koi8 に置き換えます。
STREAMS モジュールがすでにカーネルにロードされていることを確認してください。
上記の STREAMS の構成を設定するには、次のように strchg(1) を使用します。
system% cat > tmp/mystreams ttcompat ldterm u8lat1 ptem ^D system% strchg -f /tmp/mystreams |
strchg(1) を使用する場合、スーパーユーザーかデバイスの所有者としてログインしていることを確認します。現在の構成を確認するには、次のように strconf(1) を使用します。
system% strconf ttcompat ldterm u8lat1 ptem pts system% |
元の構成に戻すには、次のように STREAMS の構成を設定します。
system% cat > /tmp/orgstreams ttcompat ldterm ptem ^D system% strchg -f /tmp/orgstreams |
TTY 上での UTF-8 テキスト編集動作を設定するには、まず、次のように stty(1) を使用して端末オプションを設定してください。
system% /bin/stty defeucw |
/usr/ucb/stty はまだ国際化されていないので、代わりに /bin/stty を使用します。
次のように、stty(1) に -a オプションを指定して、現在の設定を照会することもできます。
system% /bin/stty -a |
必要な STREAMS モジュールがカーネルにロードされたら、以下の行を .cshrc ファイル (C シェルの場合) に保存すると便利です。
setenv LANG en_US.UTF-8 if ($?USER != 0 && $?prompt != 0) then cat >! /tmp/mystreams$$ << _EOF ttcompat u8euc ldtterm eucu8 ptem _EOF /bin/strchg -f /tmp/mystream$$ /bin/rm -f /tmp/mystream$$ /bin/stty cs8 -istrip defeucw endif |
.cshrc ファイルに上記の行があると、毎回すべてのコマンドを入力する必要はありません。2 つめの _EOF は行の先頭になければなりません。C シェルを起動するたびに mystreams という名前のファイルを作成するのではなく、.cshrc ファイルで mystreams を参照することもできます。