根據您所使用的終端機和終端機模擬器,您可能需要在您的串流中放入特定字碼集專用的 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-8 和 ISO8859–1 之間的字碼轉換 STREAMS 模組 (西歐語系) |
/usr/kernel/strmod/u8lat2 |
UTF-8 和 ISO8859–2 之間的字碼轉換 STREAMS 模組 (東歐語系) |
/usr/kernel/strmod/u8koi8 |
以下表格列出了 64–位元 STREAMS 模組由 en_US.UTF-8 所支援。
表 5–8 en_US.UTF-8 所支援的 64–位元 STREAMS 模組
64-位元 STREAMS 模組 |
說明 |
---|---|
/usr/kernel/strmod/sparcv9/u8lat1 |
UTF-8 和 ISO8859-1 之間的字碼轉換 STREAMS 模組 (西歐語系) |
/usr/kernel/strmod/sparcv9/u8lat2 |
UTF-8 和 ISO8859-2 之間的字碼轉換 STREAMS 模組 (東歐語系) |
/usr/kernel/strmod/sparcv9/u8koi8 |
UTF-8 和 KOI8-R (Cyrillic) 之間的字碼轉換 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
與過去的 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 (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
假設您已將必要的 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 的起始位置必須位於檔案的第一個欄位。