本部分包括系统管理员信息。
可以采用本章中的步骤设置系统级缺省语言环境,或从 Solaris DVD 和 CD 介质中添加新语言环境。还可以通过简体中文 Solaris 操作系统中包含的 Xsession 脚本更改字体路径设置。本章包含以下各节。
可以采用下列步骤对缺省语言环境进行系统级更改。
成为超级用户。
编辑 /etc/default/init 文件。
以适当的语言环境添加或更新 LANG 变量。
LANG=locale |
可以使用下列任一语言环境设置 LANG 变量:zh、zh.GBK、zh_CN.GB18030 和 zh.UTF-8
指示所有用户退出 CDE。
中止 dtconfig 进程。
# /usr/dt/bin/dtconfig -kill |
重新引导系统。
# reboot |
可以使用别名在终端窗口中更改语言环境,而不必每次都键入长命令行或编辑 .dtlogin 文件并运行source。
在 .profile 文件中添加如下所示的别名。
alias chn "export LANG=zh; /bin/stty cs8 -istrip defeucw" alias chn_GBK "export LANG=zh.GBK; /bin/stty cs8 -istrip \defeucw" alias asc "export LANG=C; /bin/stty cs7 istrip defeucw" alias chn "export LANG=zh; /bin/stty cs8 -istrip defeucw" |
在 .cshrc 文件中添加如下所示的别名。
alias chn_EUC "setenv LANG zh; /bin/stty cs8 -istrip defeucw" alias chn_GBK "setenv LANG zh.GBK; /bin/stty cs8 -istrip \defeucw" alias asc "setenv LANG C; /bin/stty cs7 istrip defeucw" alias chn_UTF-8 "setenv LANG=zh.UTF-8; /bin/stty cs8 -istrip defeucw" |
本章说明了输入法服务器的基本显示特性。输入法服务器(IM 服务器)处理简体中文 Solaris 软件的简体中文输入。IM 服务器接收键盘输入,并使输入成为可由简体中文 Solaris 系统应用程序使用的简体中文字符。htt 服务器可为任何使用 X Window 输入法 (XIM) 的应用程序编程接口 (API) 接收语言输入的国际化 X Window 应用程序提供服务。
当在要求输入法的语言环境中启动简体中文时,简体中文 Solaris 操作系统会自动启动 IM 服务器。IM 服务器连续运行,为已经启动的并已连接到它的应用程序提供服务。
使用 IM 服务器来输入简体中文字符的简体中文 Solaris 应用程序在启动时通常会查找 IM 服务器。要使用 IM 服务器提供的语言输入服务,在应用程序启动之前应运行 IM 服务器。如果 IM 服务器在应用程序启动时没有运行,则应用程序可能无法获得输入服务,即使 IM 服务器稍后启动。
输入法服务器包含三个一起运行的相关进程。这些进程是 htt、htt_xbe 和 htt_server。一个进程控制输入法服务器的特性,另一个控制输入法服务器的运行状态(即“监视” 进程),第三个进程处理客户机的输入法。
通常,您不需要知道这三个进程的细节。当 htt 启动时,htt_xbe 和 htt_server 也自动启动。
下图是一个典型的正在使用 htt 输入法的应用程序显示。
为使应用程序使用 htt 输入法服务器接收简体中文输入,则在应用程序启动前,htt 进程必须正在运行。C 语言环境不需要 htt。如果将缺省语言环境从 C 更改为另一个需要 htt 的语言环境,则必须在相同的终端窗口中启动 htt。可以使用命令启动 htt,如下例中所示。
system% /usr/openwin/bin/htt -if twle -xim htt_xbe & |
当语言环境设置为 zh 时,htt 在简体中文窗口化环境启动时启动。在 CDE 中,htt 由 /usr/dt/config/Xsession.d/0020.dtims 脚本启动。此脚本由 Xsession 执行,Xsession 在用户从 dtlogin 登录时在每个初始阶段运行。此脚本保证 htt 先于 CDE 中的其他应用程序启动。
Internet Intranet 输入法服务器 (iiim) 支持使用组合键的欧洲本地输入法。iiim 服务器支持使用 IIIM 协议的亚洲远程输入法。缺省输入法是英文/欧洲语言,它支持 ASCII 和一些欧洲语言,如德文和法文。
要切换到中文输入法,按 Ctrl-空格键。
要切换到其他输入法,在状态区中单击鼠标左按钮。
出现下面的输入法列表:
斯拉夫语
希腊语
泰语
阿拉伯语
希伯来语
印地语
Unicode 十六进制
Unicode 八进制
Lookup
简体中文
如果安装了相应的语言环境,则会出现下面的输入法:
日文—如果安装了 ja 语言环境
韩文—如果安装了 ko 语言环境
繁体中文—如果安装了 zh_TW 语言环境
繁体中文(香港)—如果安装了 zh_HK 语言环境
在选择了简体中文语言输入法后,可以使用下列功能键在不同的输入法之间进行切换:
F2—新拼音
F3—新双拼
F4—全拼
F5—双拼
F6—英汉输入法
有关输入法的详细信息,请参见第 4 章,输入简体中文文本。
本章描述简体中文 Solaris 操作系统支持使用的 PostScript、TrueType 和位图字体。下列几节讨论如何使用和编辑字体。
简体中文 Solaris 操作系统在显示 PostScript 系统 (DPS) 中提供 PostScript 字体。本节描述字体和 DPS 工具。有关进一步的详细信息,请参见由 Adobe® Systems 公司出版的 《Programming the Display PostScript System with X》。
简体中文 Solaris 操作系统包含下表中列出的字体。
表 9–1 简体中文 Solaris 操作系统 PostScript 字体
字体名 |
说明 |
---|---|
宋体 |
宋体 EUC 的别名;可像罗马字体一样使用。 |
宋体 EUC |
宋体字体,EUC 编码,水平显示;可像罗马字体一样使用。 |
楷体 |
楷体 EUC 的别名;可像罗马字体一样使用。 |
楷体 |
楷体字体,EUC 编码,水平显示;可像罗马字体一样使用。 |
仿宋体 |
仿宋体 EUC 的别名;可像罗马字体一样使用。 |
仿宋体 EUC |
仿宋体字体,EUC 编码,水平显示;可像罗马字体一样使用。 |
黑体 |
黑体 EUC 的别名;可像罗马字体一样使用。 |
黑体 EUC |
黑体字体,EUC 编码,水平显示;可像罗马字体一样使用。 |
下图显示了一个宋体字体的样例。
可以使用任何一个罗马字体和任意简体中文字体的组合来创建复合字体。例如,下列 PostScript 代码定义了一个复合字体:Times-Italic+Kai-Medium。此复合字体用 Times 斜体显示 ASCII 字符,用楷体显示简体中文字符。
/makeEUCfont { /AsianFont exch def /WestFont exch def /NewFont exch def /CIDInit /ProcSet findresource begin NewFont [ AsianFont WestFont ] beginrearrangedfont 1 usefont 1 beginbfrange <00> <7e> <00> endbfrange endrearrangedfont end } bind def /LC_Times-Roman /Times-Roman /Kai-Medium makeEUCfont
在 DPS 自动换行定义中,可以像使用罗马字体那样使用简体中文字体。下列代码样例生成 Hello World 图形中的显示。
defineps PSWDisplayText(char *text) /pointSize 50 def /Helvetica pointSize selectfont (Hello World) stringwidth pop 2 div neg 0 moveto (Hello World) show /cpSize 40 def /Song-Medium cpSize selectfont (text) stringwidth pop 2 div neg pointSize neg moveto (text) show endps
可以在 C 程序中调用 PSWDisplayText(中文文本)以显示所设计的中文文本。
简体中文 Solaris 在 DPS 中提供 TrueType 支持。
必须将 BDF 字体转换为 PCF 格式,以使字体可以在简体中文 Solaris 应用程序中使用。
使用 bdftopcf 命令将 BDF 字体转换为 PCF 格式。
system% bdftopcf -o myfont14.pcf myfont14.bdf |
用已转换的 PCF 文件替换下列目录中的 BDF 文件:$OPENWINHOME/lib/locale/locale-name/fonts
压缩 .pcf 字体文件并将其移入字体目录中。
system% compress myfont14.pcf |
在字体目录中运行以下命令。
.bdf 文件不应在字体目录中。
system% cat >> fonts.alias -new-myfont-medium-r-normal--16-140-75-75-c-140-gb2312.1980-0 Myfont-Medium14 ^D system% mkfontdir system% xset +fp `pwd` |
使用如下所示的命令行查看字体。
system% xfd -fn Myfont-Medium14 |
所有简体中文字体都含有 XLFD 字体名称。可以使用 xlsfonts 实用程序显示字体名称。
system% xlsfonts | grep gb2312 |
sdtudctool 实用程序支持位图、Type 1 和 CID 等字体。本节包含使用 sdtudctool 创建、输入和打印下列代码范围中简体中文语言环境中的新字符的说明。
表 9–2 语言环境的代码点
语言环境 |
代码范围 |
---|---|
zh |
0xD7FA-0xD7FE |
zh.GBK |
0xA140-0xA7A0 0xAAA1-0xAFFE 0xF8A1-0xFEFE |
zh_CN.GB18030 |
0xA140-0xA7A0 0xAAA1-0xAFFE 0xF8A1-0xFEFE |
可以使用下列步骤创建 zh 语言环境中的字符。
要启动此实用程序,请键入以下命令:
system% sdtudctool |
出现下面的窗口。
单击“字符”按钮。
出现下面的对话框:
指定新字符的代码位置。
使用绘图工具创建字符的轮廓或位图。
单击“文件”菜单中的“保存”来保存字符。
新字符保存在 $HOME/.Xlocale/{locale}/fonts/UDC. 中。
从“文件”菜单中选择“选项”。
出现“选项”对话框。
打开“附加字体路径”选项以将 UDC 字体别名附加到字体路径上。
打开“保存字体路径”选项以将字体文件添加到系统字体路径上。
新的字体文件(位于 $HOME/.Xlocale/{locale}/fonts/UDC 中)将在 $HOME/.OWfontpath 文件中列出,并在您下次登录时可由 X 服务器使用。
如果“保存字体路径”是关闭的,字体文件仍会保存在 $HOME/.Xlocale/{locale}/fonts/UDC 中,但不会在您下次登录时添加到系统字体路径中。
为位图字体选择下列一个或多个字体大小(以点为单位):12、14、16、20 和 24。
从“文件”菜单中选择“保存”或从“文件”菜单中选择“打开字典工具”选项。出现 sdtudc_register 工具面板。
在 "reading" 列中输入拼音。
只有有效的拼音可以向新拼音输入法注册。
单击“确认”按钮。
出现下列对话框。
UDC 及其拼音将注册到 /var/tmp/newpyudc.txt 中。单击对话框中的“确定”以确认。
使用新拼音或内码输入法为您创建的字符键入 UDC 的拼音拼写。
设置 mp 实用程序的字体路径。
system% setenv UDC_BASE $HOME/.Xlocale/zh |
指定 UDC 的配置文件,以打印包含 UDC 的文本文件。
system% /usr/openwin/bin/mp -u/usr/lib/lp/locale/zh/mp/mp.conf.U\ udc.txt > udc.ps |
/usr/dt/bin 目录中的 Xsession 脚本包含下列字体路径:/usr/openwin/lib/locale/locale/X11/fonts,其中 locale 是 zh、zh.GBK 或 zh_CN.GB18030。要动态添加不同的字体目录路径,请键入下列命令。
system% xset +fp font_directory-path system% xset fp rehash |
键入下列命令以动态添加不同的字体目录路径。
system% xset +fp font_directory-path system% xset fp rehash |
本节中的表列出可用于 zh_CN.EUC、zh_CN.GBK 和 zh_CN.GB18030 语言环境的 TrueType 字体和位图字体。
下表显示了 zh 语言环境的 TrueType 字体。
表 9–3 zh_CN.EUC 语言环境的 TrueType 字体
完整系列名 |
子系列 |
格式 |
供应商 |
编码 |
---|---|---|---|---|
仿宋 | R | TrueType | 汉仪 | GB2312.1980 |
黑体 | R | TrueType | Monotype | GB2312.1980 |
楷体 | R | TrueType | Monotype | GB2312.1980 |
宋体 | R | TrueType | Monotype | GB2312.1980 |
下表显示 zh 语言环境的位图字体。
表 9–4 zh_CN.EUC 语言环境的位图字体
完整系列名 |
子系列 |
格式 |
编码 |
---|---|---|---|
宋体 | B | PCF (14,16) | GB2312.1980 |
宋体 | R | PCF (12,14,16,20,24) | GB2312.1980 |
表 9–5 zh_CN.GBK 语言环境的 TrueType 字体
完整系列名 |
子系列 |
格式 |
供应商 |
编码 |
---|---|---|---|---|
仿宋 | R | TrueType | 综艺 | GBK |
黑体 | R | TrueType | 综艺 | GBK |
楷体 | R | TrueType | 综艺 | GBK |
宋体 | R | TrueType | 综艺 | GBK |
下表显示 zh_CN.GBK 语言环境的位图字体。
表 9–6 zh_CN.GBK 语言环境的位图字体
完整系列名 |
子系列 |
格式 |
编码 |
---|---|---|---|
宋体 | R | PCF (12,14,16,20,24) | GBK |
下表显示 zh_CN.GB18030 语言环境的 TrueType 字体。
表 9–7 zh_CN.GB18030 语言环境的 TrueType 字体
系列名 |
子系列 |
格式 |
供应商 |
编码 |
---|---|---|---|---|
仿宋 |
R |
TrueType |
方正 |
GB18030–2000 |
宋体 |
R |
TrueType |
方正 |
GB18030–2000 |
黑体 |
R |
TrueType |
方正 |
GB18030–2000 |
楷体 |
R |
TrueType |
方正 |
GB18030–2000 |
下表显示 zh_CN.GB18030 语言环境的位图字体。
表 9–8 zh_CN.GB18030 语言环境的位图字体
系列名 |
子系列 |
格式 |
编码 |
---|---|---|---|
宋体 |
R |
PCF(12,14,16,20,24) |
GB18030–2000 |
本章描述如何将简体中文文本打印到行式打印机。本章还提供有关如何使用 mp 实用程序打印到 PostScript 打印机或行式打印机的信息。
本节提供使用 lp 命令和 mp 程序从命令行打印的信息。
可以使用本节中的命令将不同格式的文件打印到行式打印机。
使用此命令打印 EUC 文件。
system% lp EUC_filename |
使用此命令将 GB 格式文件打印到支持 GB 格式的打印机。
system% lp -T GB GB_filename |
在当前的简体中文 Solaris 发行版中可以使用增强的 mp 打印实用程序。可以使用 mp 在 zh 语言环境中打印 zh 文件或在 zh.UTF-8 语言环境中打印 UTF-8 文件。
此实用程序的输出是标准的 PostScript,可以发送到任何 PostScript 打印机。
使用以下命令可通过 mp 实用程序打印文件。
system% mp filename | lp |
还可以使用此实用程序作为过滤器,因为 mp 接受 stdin 流。
system% cat filename | mp | lp |
可以将此实用程序设置为行式打印机的打印过滤器。例如,以下列命令序列通知打印服务打印机 lp1 只接受 mp 格式文件。此命令还在端口 /dev/ttya 安装打印机 lp1。有关更多详细信息,请参见 lpadmin(1M) 手册页。
system% lpadmin -p lp1 -v /dev/ttya -I MP system% accept lp1 system% enable lp1 |
可以使用以下命令为 LP 打印服务添加过滤器。
system% lpfilter -f filtername \ -F pathname |
过滤器用 /usr/bin/mp 命令将缺省输入类型转换为 PostScript 输出。
要打印 UTF-8 文件文件,使用如下所示的命令行。
system% lp -T MP UTF-8-file |
有关 mp(1) 的更多详细信息,请参见手册页。
将 mp 用作 Xprt 客户机使 mp 能打印连接到受 Xprt 打印服务支持的网络上的任何打印机的输出。作为 Xprt 客户机,mp 支持 PostScript 和许多版本的 PCL。
当 -D printer_name@machine[:dispNum] 或 -P printer_name@machine[:dispNum] 选项与 mp 命令一起使用时,mp 尝试连接到 machine[:dispNum] 上名为 printer_name 的 Xprt 打印服务。
如果上述连接到 machine[:dispNum] 的尝试失败或传递给 -D 或 -P 的参数只有 printer_name,则 mp 命令将检查 XPSERVERLIST,以查找支持 printer_name 参数的 Xprt 服务器。例如:
system% setenv XPSERVERLIST "machine1[:dispNum1] machine2[:dispNum2] \ machine3[:dispNum3]" |
如果使用上述规则找不到服务器,mp 将检查设置为 machine[:dispNum] 的 XPDISPLAY 环境变量。例如:
system% setenv XPDISPLAY "machine[:dispNum]" |
如果 XPDISPLAY 变量未设置或此变量无效,mp 尝试连接到缺省显示值:2100。如果缺省显示值还无效,mp 退出并显示错误消息。
/usr/lib/lp/locale/C/mp 目录包含 Xprt 客户机的 .xpr 打印页样例布局文件。这些样例文件适用于 300 dpi 打印机。如果目标打印机具有不同的 dpi 值,则此样例文件的 dpi 值自动转换为目标打印机的分辨率。
本章假定您熟悉下列信息。
Solaris 操作系统使用 STREAMS 和 ioctl 与外部设备进行通讯。
由 termcap 和 terminfo 支持不同的终端类型。
本章包含以下各节:
有关 STREAMS 和 TTY 驱动程序的背景信息,请参阅 termio(7I) 手册页。
简体中文 Solaris 操作系统支持中文终端 (EUC-GB)。这些终端应包含内置的简体中文字体和输入方法。
如果您以前未曾向系统添加过终端,则仅以 ASCII 模式安装终端。
可以使用 Admintool 菜单中的串行端口选项配置终端的串行端口。串行端口提供安装终端的最简便方法。
成为超级用户。
system% su |
键入 admintool。
出现 admintool 菜单。
system# admintool |
选择串行端口图标。
选择串行端口菜单上“编辑”选项。
出现“修改服务”子菜单。
在“修改服务”子菜单上,选择“启用”、“波特率 9600”,然后输入终端类型。
在 ttya 端口上从命令行设置终端,需要执行下列步骤:
确定端口监视器的版本号。
# ttyadm -V |
将显示端口监视器的版本号。
输入下列命令,用端口监视器的版本号代替 ver。
# pmadm -r -p zsmon -s ttya # sacadm -a -p zsmon -t ttymon -c /usr/lib/saf/ttymon -v ver |
有关更多信息,请参见 pmadm(1M) 和 sacadm(1M) 手册页。
使用与终端类型相匹配的 pmadm 命令来添加登录服务。
对于 EUC 终端,使用下列命令。
# pmadm -a -p zsmon -s ttya -i root -fu -v ver -m "`ttyadm -S y \ -T terminal_type -d /dev/ttya -l 9600 -m ldterm,ttcompat -s \ /usr/bin/login`" |
开启终端。
参阅终端附带的文档。
登录到终端。
检查安装是否正确。
# setenv LANG locale # /bin/stty cs8 -istrip defeucw |
这些值表明操作系统设置为以 8 位无奇偶校验模式与终端通讯。确保终端设置为 8 位无奇偶校验模式。参考终端设置手册中设置终端选项的正确方法。
键入带 -a 选项的 /bin/stty 命令。
system% /bin/stty -a |
如果未列出在上一步骤中设置的 cs8 和 -istrip 值,则使用下列命令设置它们。
system% /bin/stty cs8 -istrip defeucw |
这是设置终端的最后一个步骤。简体中文终端的缺省设置是完整代码模式。继续学习下一节来安装一个已打包代码的 TTY。
本章包含有关使程序与早期亚洲版 Solaris 软件向后兼容的信息。描述的每个实用程序都得到支持。对于此版本的 Solaris,鼓励您使用《国际化语言环境指南》中描述的 XPG4 国际化 API。
这些实用程序测试简体中文 (GB-2312-80) 国家标准字符集的各个方面。它们还假定被测试的字符是国家标准字符集的一部分。
下列各表中函数的参数必须是 WC wchar_t 中的字符。有关更多信息,请参见 cctype(3x) 手册页。
表 12–1 简体中文字符分类函数
例程 |
说明 |
---|---|
ischanzi |
如果它是 GB-2312-80 中的汉字,则返回 true。 |
iscaccent |
如果它是 GB-2312-80 中的重音符号,则返回 true。 |
iscphonetic |
如果它是 GB-2312-80 中的语音符号,则返回 true。 |
iscpinyin |
如果它是 GB-2312-80 中的拼音符号,则返回 true。 |
iscalpha |
如果它是 GB-2312-80 中的罗马字母,则返回 true。 |
iscdigit |
如果它是 GB-2312-80 中的罗马数字,则返回 true。 |
iscnumber |
如果它是 GB-2312-80 中的数字,则返回 true。 |
isclower |
如果它是 GB-2312-80 中的小写罗马字母,则返回 true。 |
iscupper |
如果它是GB-2312-80 中的大写罗马字母,则返回 true。 |
iscblank |
如果它是 GB-2312-80 中的空白字符,则返回 true。 |
iscspace |
如果它是 GB-2312-80 中的空格字符,则返回 true。 |
iscgen |
如果它是 GB-2312-80 中的图形符号或通用符号,则返回 true。 |
iscsci |
如果它是 GB-2312-80 中的科学记数符号,则返回 true。 |
iscline |
如果它是 GB-2312-80 中的格线符号,则返回 true。 |
iscunit |
如果它是 GB-2312-80 中的单位字符,则返回 true。 |
iscparen |
如果它是 GB-2312-80 中的右括号或左括号,则返回 true。 |
iscpunct |
如果它是 GB-2312-80 中的标点符号,则返回 true。 |
iscgreek |
如果它是 GB-2312-80 中的希腊字符,则返回 true。 |
iscrussian |
如果它是 GB-2312-80 中的俄文字符,则返回 true。 |
iscspecial |
如果它是 GB-2312-80 中的希腊字符或俄文字符,则返回 true。 |
ischira |
如果它是 GB-2312-80 中的日文平假名字符,则返回 true。 |
isckata |
如果它是 GB-2312-80 中的日文片假名字符,则返回 true。 |
另有两个用于简体中文的例程,即 iscgb 和 isceuc。它们测试 GB-2312-80 字符集中的字符。iscgb 例程需要宽字符,而 isceuc 需要 EUC 格式的 GB-2312-80 字符。有关更多信息,请参见 cctype (3x) 手册页。
表 12–2 简体中文通用字符分类函数
例程 |
说明 |
---|---|
iscgb |
如果它是 GB-2312-80 中的字符,则返回 true。 |
isceuc |
如果它是 GB-2312-80 中的 EUC 格式字符,则返回 true。 |
本节描述宽字符和字符串输入输出函数、字符分类函数和简体中文字符集的转换函数。Solaris 2.7 软件实现了一个宽字符库,用于根据行业标准处理简体中文字符代码。
对中文语言有特定相关性的例程在它们自己的特定语言库中,此库通过相应的 C 编译器选项链接。简体中文 Solaris libcle 使用 -lcle 链接。
有关更多信息,请参考相应的手册页。
亚洲版 Solaris 软件将 WC 定义为定常宽度的四字节代码。WC 使用 ANSI C 数据类型 wchar_t, Solaris 软件在 wchar.h 头文件中将该类型定义为:
typedef long wchar_h;
在 Solaris 软件中,long 是四字节的数据类型。
本节所描述的转换函数可供使用,但应将 iconv() 作为标准函数使用。
简体中文 Solaris 软件提供了用于各种转换的工具,例如:
代码集内部的字符转换,例如将 ASCII 大写字母转换成小写字母。
国家标准字符集的不同规范之间的转换,例如 GB 和 EUC 之间的转换。
代码格式之间的转换(例如在 EUC 和 WC 之间转换)。
使用通用多字节转换实用程序的程序应该包含头文件 widec.h 和 wctype.h。简体中文 Solaris 的特定例程(例如 iscxxx)在 zh/xctype.h 中声明。
使用通用多字节转换实用程序的程序应该包含三个头文件:wctype.h、widec.h 和 zh/xctype.h。
locale/xctype.h 头文件声明与中文语言环境特定的例程,这些例程的名称具有相同的形式 isc xxxx:
与前一节中介绍的分类功能一样,这些功能的使用会受 setlocale 功能的控制(本章的其他地方和其他章节将介绍此功能)。
特定于语言环境的转换例程(例如中文 cgbtoeuc)收集在 libcle 库中:
编译时通过 C 编译器选项 -lcle 可链接此库。
多字节转换函数与单字节转换函数 toupper 和 tolower 类似。这些函数将宽字符转换成其他宽字符。有关转换例程的更多信息,请参见 wconv(3) 和 cconv(3) 手册页。
以下例程收集在常规中文 C 库中:
表 12–3 简体中文大小写转换函数(在 zh/xctype.h 中声明)
函数 |
说明 |
---|---|
tocupper |
将代码集 1 中的小写罗马字母转换成大写字母 |
toclower |
将代码集 1 中的大写罗马字母转换成小写字母 |
在简体中文字符集中,代码集 0 中的罗马字符和数字在代码集 1 中重复。下列函数测试宽字符。
表 12–4 简体中文代码集转换函数
功能 |
说明 |
---|---|
atocgb |
将 ASCII(代码集 0)中的字母或数字字符转换成相应的 GB-2312-80(代码集 1)中的字符。 |
cgbtoa |
将 GB-2312-80(代码集 1)中的字母或数字字符转换成相应的 ASCII (代码集 0)中的字符。 |
有关这些函数的更多信息,请参见 cconv() (3x) 手册页。
以下例程对 GB-2312-80 字符集进行基于字符的代码转换。它们在 EUC 格式和 GB-2312-80 格式之间转换字符和字符串。要使用这些例程,必须使用 C 编译器选项 -lcle 链接库 lib cle。有关详细信息,请参见 cconv(3) 手册页。
表 12–5 简体中文基于字符的函数
函数 |
说明 |
---|---|
cgbtoeuc |
将一个字符从 GB-2312-80 格式(7 位)转换成 EUC 格式 |
scgbtoeuc |
将一个字符串从 GB-2312-80 格式(7 位)转换成 EUC 格式 |
sncgbtoeuc |
将一个字符串的一部分从 GB-2312-80 格式(7 位)转换成 EUC 格式 |
euctocgb |
将一个字符从 EUC 格式转换成 GB-2312-80 格式(7 位) |
seuctocgb |
将一个字符串从 EUC 格式转换成 GB-2312-80 格式(7 位) |
sneuctocgb |
将一个字符串的一部分从 EUC 格式转换成 GB-2312-80 格式 (7 位) |
中文 OpenWindows 2.x、Solaris 1.x 或 SunOS 4.x 系统下编译的应用程序的二进制格式与当前中文 Solaris 发行版的二进制格式不同。不过,通过使用当前中文发行版中包含的二进制兼容性软件包 (BCP),早期的应用程序无需经过重新编译即可在当前的中文发行版下运行。
您的系统配置中必须包含 SUNWowbcp,您才能够运行以下命令。有关安装信息,请与您的系统管理员联系。
下列 BCP 命令可以运行早期的 SunOS4.x、Solaris 1.x 或中文 OpenWindows 2.x 应用程序的已编译的二进制代码,而无需重新编译它们。但是,OpenWindows V2 中文应用程序将不显示输入服务器状态区域。如下例所示,此命令按照应用程序的旧名称 (old_application_name) 调用应用程序,并使用较旧版本的特定语言环境名称 (old-locale) 设置基本语言环境、输入语言和显示语言:
system% old_application_name -lc_basiclocale old-locale -lc_inputlang old-locale \ -lc_displaylang old-locale |
下例显示了在当前的简体中文 Solaris 环境中用于运行早期版本的 textedit 应用程序的已编译的二进制代码的命令:
system% textedit -lc_displaylang chinese -lc_basiclocale chinese \ -lc_inputlang chinese |
由于简体中文 Solaris 2.x 和 1.x 应用程序之间不兼容,所以不能在二者之间剪切和粘贴中文字符。