本部分描述语言环境环境变量、TTY 环境设置、32 位和 64 位 STREAMS 模块以及终端支持。
确保在系统上安装 en_US.UTF-8 语言环境。要检查各种类中的当前语言环境设置,请使用 locale 实用程序。
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=
要使用 en_US.UTF-8 语言环境桌面环境,请首先选择该语言环境。在 TTY 环境中,通过将 LANG 环境变量设置为 en_US.UTF-8 首先选择语言环境,如下面的 C-shell 实例所示:
system% setenv LANG en_US.UTF-8
确保 LC_ALL、LC_COLLATE、LC_CTYPE、LC_MESSAGES、LC_NUMERIC、LC_MONETARY 和 LC_TIME 种类未设置,或者设置为 en_US.UTF-8。如果设置了这些种类中的任何一个,则它们将覆盖较低优先级的 LANG 环境变量。有关环境变量分层结构的详细信息,请参见 setlocale(3C) 手册页。
您也可以从 CDE 桌面上启动 en_US.UTF-8 环境。在 CDE 登录屏幕的 Options -> Language 菜单上,选择 en_US.UTF-8。
根据所使用的终端和终端仿真器的不同,您可能需要将某些特定代码集的 STREAMS 模块推送到流上。
有关 STREAMS 模块和一般流的详细信息,请参见《STREAMS Programming Guide》。
下表列出在终端环境中 en_US.UTF-8 语言环境支持的 64 位 STREAMS 模块。有关详细信息,请参见《Solaris 64-bit Developer's Guide》。
表 5–12 en_US.UTF-8 所支持的 STREAMS 模块
32 位 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(西里尔语)之间的代码转换 STREAMS 模块 |
从 Solaris 10 发行版开始,SPARC sun4u 平台不再支持 32 位内核。表 5–12 仅适用于 x86 平台的 32 位内核。有关详细信息,请参阅发行说明。
下表列出 en_US.UTF-8 支持的 64 位 STREAMS 模块。
表 5–13 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(西里尔语)之间的代码转换 STREAMS 模块 |
作为超级用户,请确定您运行的是 64 位 Solaris 还是 32 位 Solaris 系统。
system# isainfo -v
确定您的系统是否已装入 STREAMS 模块。
system# modinfo | grep modulename
如果已安装了 STREAMS 模块(如 u8lat1), 则输出将类似于以下内容:
system# modinfo | grep u8lat1 89 ff798000 4b13 18 1 u8lat1 (UTF-8 <--> ISO 8859-1 module)
如果该模块尚未装入,请使用 modload(1M) 命令装入它。
作为超级用户,确认已装入内核模块。
例如,要确认已装入 u8lat1,应键入:
system# modinfo | grep u8lat1 89 ff798000 4b13 18 1 u8lat1 (UTF-8 <--> ISO 8859-1 module)
使用 modunload(1M) 命令卸载内核。
例如,要卸载 u8lat1 模块,应键入:
system# modunload -i 89
使用第二个命令行中所示的 strchg(1M)。
system% cat > tmp/mystreams ttcompat ldterm u8lat1 ptem ^D system% strchg -f /tmp/mystreams
确保在使用 strchg(1) 时您是超级用户或此设备的属主。
要查看当前配置,请运行 strconf 命令。
system% strconf ttcompat ldterm u8lat1 ptem pts system%
要复位初始配置,请运行 strchg 命令。
system% cat > /tmp/orgstreams ttcompat ldterm ptem ^D system% strchg -f /tmp/orgstreams
与 Solaris 操作系统以前的发行版不同,支持 UTF-8 代码集输入和输出的 dtterm 和 xterm 终端仿真器和任何其他终端在它们的流中无需附加任何的 STREAMS 模块。如果您使用 stty(1) 实用程序设置终端环境,ldterm 模块现在与代码集无关,并且支持 Unicode/UTF-8。
要为 Unicode 语言环境设置正确的终端环境,请使用 stty(1) 实用程序。
system% /bin/stty defeucw
要查询当前的设置,请使用 stty 实用程序的 -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 终端,请将 STREAMS 模块 u8lat1 替换为 u8lat2。对于 KOI8-R 终端,请将该模块替换为 u8koi8。
确保已将 STREAMS 模块装入到了内核中。
假定必需的 STREAMS 模块已装入内核,可以在 .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 应从该文件的第一列开始。