國際語言環境指南

TTY 環境設定

根據您所使用的終端機和終端機模擬器,您可能需要在您的串流中放入特定字碼集專用的 STREAMS 模組。

如需 STREAMS 模組和一般使用串流的詳細資訊,請參閱「STREAMS Programming Guide」。

下表 將說明在終端機環境中的 en_US.UTF-8 語言環境所支援的 STREAMS 模組。

表 5–7 en_US.UTF-8 所支援的 32–位元 STREAMS 模組

32–位元 STREAMS 模組 

說明 

/usr/kernel/strmod/u8lat1

UTF-8ISO8859–1 之間的字碼轉換 STREAMS 模組 (西歐語系)

/usr/kernel/strmod/u8lat2

UTF-8ISO8859–2 之間的字碼轉換 STREAMS 模組 (東歐語系)

/usr/kernel/strmod/u8koi8

UTF-8KOI8–R (Cyrillic) 之間的字碼轉換 STREAM 模組

以下表格列出了 64–位元 STREAMS 模組由 en_US.UTF-8 所支援。

表 5–8 en_US.UTF-8 所支援的 64–位元 STREAMS 模組

64-位元 STREAMS 模組  

說明 

/usr/kernel/strmod/sparcv9/u8lat1

UTF-8ISO8859-1 之間的字碼轉換 STREAMS 模組 (西歐語系)

/usr/kernel/strmod/sparcv9/u8lat2

UTF-8ISO8859-2 之間的字碼轉換 STREAMS 模組 (東歐語系)

/usr/kernel/strmod/sparcv9/u8koi8

UTF-8 KOI8-R (Cyrillic) 之間的字碼轉換 STREAMS 模組

在核心程式載入 STREAMS 模組

您必須以 root 身分才能在核心程式載入 STREAMS 模組。

若要決定您要執行 64 位元 Solaris 或 32 位元 Solaris 系統,請依照下列示範使用 isainfo(1) 公用程式:

system# isainfo -v
64 位元 sparcv9 應用程式 
32 位元 sparc 應用程式

如果指令傳回這段訊息,即表示您正在執行 64 位元 Solaris 系統。如果您正在執行 32 位元的 Solaris 系統,公用程式就會列出下面指令:

system# isainfo -v
32 位元 sparc 應用程式

使用 modinfo(1M) 以確定系統尚未載入 STREAMS 模組:

system# modinfo | grep modulename

若您已安裝如 u8lat1 等 STREAMS 模組,其輸出處將會顯示:

system# modinfo | grep u8lat1
89 ff798000  4b13  18   1  u8lat1 (UTF-8 <--> ISO 8859-1 模組)

如果該模組已經安裝,您就不需要再載入它。不過,若您尚未載入該模組,請使用 modload (1M),如以下所示:

system# modload /usr/kernel/strmod/u8lat1

該指令會在 kernel上載入 32–位元的 u8lat1 STREAMS 模組,使您得以將其置入串流中。若您所使用的是 64–位元的 Solaris 產品,請使用 modload( 1M),如以下所示 :

system# modload /usr/kernel/strmod/sparcv9/u8lat1

STREAMS 模組已載入至 kernel,現在您可以將其置入串流中。

若要從 kernel 中卸下模組,請使用 modunload (1M),如以下所示。 在這個範例中,已經卸下 u8lat1 模組。

system# modinfo | grep u8lat1
89 ff798000  4b13  18   1  u8lat1 (UTF-8 <--> ISO 8859-1 模組)
system# modunload -i 89

dtterm 和可輸入和輸出 UTF-8 字元的終端機

與過去的 Solaris 作業環境不同的是, dtterm(1) 終端機和任何支援 UTF-8 字碼集輸入和輸出的其他終端機並不需要在其串流中加入其它的 STREAMS 模組。ldterm(7M) 模組不需依賴字碼集,且能支援 Unicode/UTF-8

若要為 Unicode 語言環境設定適當的終端機環境,請使用 stty(1) 公用程式。 若要查詢目前的設定,請使用 stty(1) 公用程式的 -a 選項,如以下所示:

system% /bin/stty -a

註解 –

由於 /usr/ucb/stty 尚未國際化,請使用 /bin/stty 來代替。


Latin-1、Latin-2,或 KOI8-R 的終端機支援

若您的終端機只支援 Latin-1 (ISO8859-1)、Latin-2 (ISO8859-2) 或 KOI8-R,您必須進行以下的 STREAMS 配置:

head <-> ttcompat <->  ldterm <->  u8lat1 <-> TTY

此配置只適用於支援 Latin-1 的終端機。在 Latin-2 終端機上,請以 u8lat2 取代 STREAMS 模組 u8lat1。在 KOI8-R 終端機上,請以 u8koi8 取代模組。

請確定您已經在核心程式中載入該 STREAMS 模組。

若要設定以上的 STREAMS 配置,請使用 strchg (1M),如範例中的第二指令行所示。

system% cat> tmp/mystreams 
ttcompat
ldterm
u8lat1
ptem 
^D
system% strchg -f /tmp/mystreams

在使用 strchg(1) 之前,請確定您是 root 使用者或裝置擁有人。若要檢查目前的設定,請使用 strconf( 1),如以下所示:

system% strconf
ttcompat
ldterm
u8lat1
ptem 
pts
system%

若要重新設定原始配置,請設定下列 STREAMS 配置:

system% cat> /tmp/orgstreams
ttcompat
ldterm
ptem
^D
system% strchg -f /tmp/orgstreams

儲存 ~/.cshrc 中的設定

假設您已將必要的 STREAMS 模組載入至 kernel 中,為了方便起見,可以將下列指令行儲存至 .cshrc 檔案中 (C shell 範例):

setenv LANG en_US.UTF-8 
if ($?USER != 0 && $?prompt != 0) then
     cat>! /tmp/mystreams$$ << _EOF
     ttcompat
     ldtterm
     u8lat1
     ptem
_EOF
     /bin/strchg -f /tmp/mystreams$$
     /bin/rm -f /tmp/mystreams$$
     /bin/stty cs8 -istrip defeucw
endif

一旦您將這些指令行儲存至 .cshrc檔案中,每次當您使用 STREAMS 模組時就不再需要輸入所有的指令。請注意,第二 _EOF 的起始位置必須位於檔案的第一個欄位。