简体中文 Solaris 用户指南

部件 III 系统管理员信息

本部分包括系统管理员信息。

第 7 章 配置简体中文 Solaris 系统

可以采用本章中的步骤设置系统级缺省语言环境,或从 Solaris DVD 和 CD 介质中添加新语言环境。还可以通过简体中文 Solaris 操作系统中包含的 Xsession 脚本更改字体路径设置。本章包含以下各节。

设置缺省语言环境

可以采用下列步骤对缺省语言环境进行系统级更改。

如何设置缺省语言环境

  1. 成为超级用户。

  2. 编辑 /etc/default/init 文件。

  3. 以适当的语言环境添加或更新 LANG 变量。


    LANG=locale
    

    可以使用下列任一语言环境设置 LANG 变量:zhzh.GBKzh_CN.GB18030zh.UTF-8

  4. 指示所有用户退出 CDE。

  5. 中止 dtconfig 进程。


    # /usr/dt/bin/dtconfig -kill
    
  6. 重新引导系统。


    # reboot
    

使用别名设置语言环境

可以使用别名在终端窗口中更改语言环境,而不必每次都键入长命令行或编辑 .dtlogin 文件并运行source

如何设置 Korn Shell 的语言环境别名

  1. .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"

如何设置 C Shell 的语言环境别名

  1. .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"

第 8 章 管理 htt 输入法服务器

本章说明了输入法服务器的基本显示特性。输入法服务器(IM 服务器)处理简体中文 Solaris 软件的简体中文输入。IM 服务器接收键盘输入,并使输入成为可由简体中文 Solaris 系统应用程序使用的简体中文字符。htt 服务器可为任何使用 X Window 输入法 (XIM) 的应用程序编程接口 (API) 接收语言输入的国际化 X Window 应用程序提供服务。

本章的下列几节解释 IM 服务器的基本显示特性。

输入法服务器的基本属性

当在要求输入法的语言环境中启动简体中文时,简体中文 Solaris 操作系统会自动启动 IM 服务器。IM 服务器连续运行,为已经启动的并已连接到它的应用程序提供服务。

使用 IM 服务器来输入简体中文字符的简体中文 Solaris 应用程序在启动时通常会查找 IM 服务器。要使用 IM 服务器提供的语言输入服务,在应用程序启动之前应运行 IM 服务器。如果 IM 服务器在应用程序启动时没有运行,则应用程序可能无法获得输入服务,即使 IM 服务器稍后启动。

三个 htt 的进程

输入法服务器包含三个一起运行的相关进程。这些进程是 htthtt_xbehtt_server。一个进程控制输入法服务器的特性,另一个控制输入法服务器的运行状态(即“监视” 进程),第三个进程处理客户机的输入法。

通常,您不需要知道这三个进程的细节。当 htt 启动时,htt_xbehtt_server 也自动启动。

htt 应用程序显示

下图是一个典型的正在使用 htt 输入法的应用程序显示。

上文介绍了此图形。

如何和何时启动 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 中的其他应用程序启动。

zh.UTF-8zh_CN.UTF-8 语言环境中使用 iiim 服务器

Internet Intranet 输入法服务器 (iiim) 支持使用组合键的欧洲本地输入法。iiim 服务器支持使用 IIIM 协议的亚洲远程输入法。缺省输入法是英文/欧洲语言,它支持 ASCII 和一些欧洲语言,如德文和法文。

要切换到中文输入法,按 Ctrl-空格键。

要切换到其他输入法,在状态区中单击鼠标左按钮。

出现下面的输入法列表:

如果安装了相应的语言环境,则会出现下面的输入法:

在选择了简体中文语言输入法后,可以使用下列功能键在不同的输入法之间进行切换:

有关输入法的详细信息,请参见第 4 章,输入简体中文文本

第 9 章 字体

本章描述简体中文 Solaris 操作系统支持使用的 PostScript、TrueType 和位图字体。下列几节讨论如何使用和编辑字体。

显示 PostScript 系统 (DPS)

简体中文 Solaris 操作系统在显示 PostScript 系统 (DPS) 中提供 PostScript 字体。本节描述字体和 DPS 工具。有关进一步的详细信息,请参见由 Adobe® Systems 公司出版的 《Programming the Display PostScript System with X》。

使用简体中文 PostScript 字体和 DPS 工具

简体中文 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 编程中使用简体中文字体

在 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(中文文本)以显示所设计的中文文本。

Window 用英文和简体中文字符显示文本 Hello World。

简体中文 Solaris 在 DPS 中提供 TrueType 支持。

将 BDF 字体转换为 PCF 格式

必须将 BDF 字体转换为 PCF 格式,以使字体可以在简体中文 Solaris 应用程序中使用。

如何将 BDF 字体转换为 PCF 格式

  1. 使用 bdftopcf 命令将 BDF 字体转换为 PCF 格式。


    system% bdftopcf -o myfont14.pcf myfont14.bdf
    
  2. 用已转换的 PCF 文件替换下列目录中的 BDF 文件:$OPENWINHOME/lib/locale/locale-name/fonts

如何安装和检查已编辑的字体

  1. 压缩 .pcf 字体文件并将其移入字体目录中。


    system% compress myfont14.pcf
    
  2. 在字体目录中运行以下命令。

    .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`
    
  3. 使用如下所示的命令行查看字体。


    system% xfd -fn Myfont-Medium14
    

所有简体中文字体都含有 XLFD 字体名称。可以使用 xlsfonts 实用程序显示字体名称。


system% xlsfonts | grep gb2312

使用 sdtudctool 创建字符

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 

如何使用 sdtudctool

可以使用下列步骤创建 zh 语言环境中的字符。

  1. 要启动此实用程序,请键入以下命令:


    system% sdtudctool
    

    出现下面的窗口。

    上文介绍了此图形。
  2. 单击“字符”按钮。

    出现下面的对话框:

    上文介绍了此图形。
  3. 指定新字符的代码位置。

  4. 使用绘图工具创建字符的轮廓或位图。

  5. 单击“文件”菜单中的“保存”来保存字符。

    新字符保存在 $HOME/.Xlocale/{locale}/fonts/UDC. 中。

如何指定 sdtudctool 选项

  1. 从“文件”菜单中选择“选项”。

    出现“选项”对话框。

    上文介绍了此图形。
  2. 打开“附加字体路径”选项以将 UDC 字体别名附加到字体路径上。

  3. 打开“保存字体路径”选项以将字体文件添加到系统字体路径上。

    新的字体文件(位于 $HOME/.Xlocale/{locale}/fonts/UDC 中)将在 $HOME/.OWfontpath 文件中列出,并在您下次登录时可由 X 服务器使用。

    如果“保存字体路径”是关闭的,字体文件仍会保存在 $HOME/.Xlocale/{locale}/fonts/UDC 中,但不会在您下次登录时添加到系统字体路径中。

  4. 为位图字体选择下列一个或多个字体大小(以点为单位):12、14、16、20 和 24。

如何查看字符参照

  1. 要查看字符参照,单击“帮助”菜单下的图标。

    出现下面的窗口。

    上文介绍了此图形。
  2. 要关闭窗口,再次单击该图标。

如何向新拼音输入法注册 UDC

  1. 从“文件”菜单中选择“保存”或从“文件”菜单中选择“打开字典工具”选项。出现 sdtudc_register 工具面板。

    上文介绍了此图形。
  2. 在 "reading" 列中输入拼音。

    上文介绍了此图形。
    注意 –

    只有有效的拼音可以向新拼音输入法注册。


  3. 单击“确认”按钮。

    出现下列对话框。

    上文介绍了此图形。
  4. UDC 及其拼音将注册到 /var/tmp/newpyudc.txt 中。单击对话框中的“确定”以确认。

如何键入新字符

使用新拼音或内码输入法为您创建的字符键入 UDC 的拼音拼写。

  1. 在新拼音模式下键入 shan

    上文介绍了此图形。
  2. 在 GB 内码模式下键入 D7FA

    上文介绍了此图形。

如何打印新字符

  1. 设置 mp 实用程序的字体路径。


    system% setenv UDC_BASE $HOME/.Xlocale/zh
    
  2. 指定 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,其中 localezhzh.GBKzh_CN.GB18030。要动态添加不同的字体目录路径,请键入下列命令。


system% xset +fp font_directory-path
system% xset fp rehash

如何添加字体目录路径

    键入下列命令以动态添加不同的字体目录路径。


    system% xset +fp font_directory-path
    system% xset fp rehash
    

位图和 TrueType 字体

本节中的表列出可用于 zh_CN.EUCzh_CN.GBKzh_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 字体

系列名 

子系列 

格式 

供应商 

编码 

仿宋 

TrueType 

方正 

GB18030–2000 

宋体 

TrueType 

方正 

GB18030–2000 

黑体 

TrueType 

方正 

GB18030–2000 

楷体 

TrueType 

方正 

GB18030–2000 

下表显示 zh_CN.GB18030 语言环境的位图字体。

表 9–8 zh_CN.GB18030 语言环境的位图字体

系列名 

子系列 

格式 

编码 

宋体 

PCF(12,14,16,20,24) 

GB18030–2000 

第 10 章 简体中文打印工具

本章描述如何将简体中文文本打印到行式打印机。本章还提供有关如何使用 mp 实用程序打印到 PostScript 打印机或行式打印机的信息。

从命令行打印中文输出

本节提供使用 lp 命令和 mp 程序从命令行打印的信息。

用行式打印机打印

可以使用本节中的命令将不同格式的文件打印到行式打印机。

    使用此命令打印 EUC 文件。


system% lp EUC_filename 

    使用此命令将 GB 格式文件打印到支持 GB 格式的打印机。


    system% lp -T GB GB_filename 
    

mp 实用程序打印

在当前的简体中文 Solaris 发行版中可以使用增强的 mp 打印实用程序。可以使用 mpzh 语言环境中打印 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(X 打印服务器)客户机

mp 用作 Xprt 客户机使 mp 能打印连接到受 Xprt 打印服务支持的网络上的任何打印机的输出。作为 Xprt 客户机,mp 支持 PostScript 和许多版本的 PCL。

Xprt 客户机根据下列规则尝试连接到 Xprt 服务器:

第 11 章 TTY 环境和支持

本章假定您熟悉下列信息。

本章包含以下各节:

有关 STREAMS 和 TTY 驱动程序的背景信息,请参阅 termio(7I) 手册页。

终端支持

简体中文 Solaris 操作系统支持中文终端 (EUC-GB)。这些终端应包含内置的简体中文字体和输入方法。

安装终端

如果您以前未曾向系统添加过终端,则仅以 ASCII 模式安装终端。

如何安装终端

可以使用 Admintool 菜单中的串行端口选项配置终端的串行端口。串行端口提供安装终端的最简便方法。

  1. 成为超级用户。


    system% su
    
  2. 键入 admintool

    出现 admintool 菜单。


    system# admintool
    
  3. 选择串行端口图标。

  4. 选择串行端口菜单上“编辑”选项。

    出现“修改服务”子菜单。

  5. 在“修改服务”子菜单上,选择“启用”、“波特率 9600”,然后输入终端类型。

    上文介绍了此图形。

如何从命令行设置 ttya 端口

ttya 端口上从命令行设置终端,需要执行下列步骤:

  1. 确定端口监视器的版本号。


    # ttyadm -V
    

    将显示端口监视器的版本号。

  2. 输入下列命令,用端口监视器的版本号代替 ver


    # pmadm -r -p zsmon -s ttya
    # sacadm -a -p zsmon -t ttymon -c /usr/lib/saf/ttymon -v ver
    

    有关更多信息,请参见 pmadm(1M)sacadm(1M) 手册页。

  3. 使用与终端类型相匹配的 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`"
    
  4. 开启终端。

    参阅终端附带的文档。

  5. 登录到终端。

  6. 检查安装是否正确。


    # setenv LANG locale
    # /bin/stty cs8 -istrip defeucw
    

    注意 –

    这些值表明操作系统设置为以 8 位无奇偶校验模式与终端通讯。确保终端设置为 8 位无奇偶校验模式。参考终端设置手册中设置终端选项的正确方法。


如何检验 TTY 设置

执行下列步骤检验 TTY 的设置是否正确。

  1. 键入带 -a 选项的 /bin/stty 命令。


    system% /bin/stty -a
    
  2. 如果未列出在上一步骤中设置的 cs8-istrip 值,则使用下列命令设置它们。


    system% /bin/stty cs8 -istrip defeucw
    

这是设置终端的最后一个步骤。简体中文终端的缺省设置是完整代码模式。继续学习下一节来安装一个已打包代码的 TTY。

第 12 章 向后兼容性

本章包含有关使程序与早期亚洲版 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。 

另有两个用于简体中文的例程,即 iscgbisceuc。它们测试 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 软件提供了用于各种转换的工具,例如:

使用通用多字节转换实用程序的程序应该包含头文件 widec.hwctype.h。简体中文 Solaris 的特定例程(例如 iscxxx)在 zh/xctype.h 中声明。

使用通用多字节转换实用程序的程序应该包含三个头文件:wctype.hwidec.hzh/xctype.h

locale/xctype.h 头文件声明与中文语言环境特定的例程,这些例程的名称具有相同的形式 isc xxxx

与前一节中介绍的分类功能一样,这些功能的使用会受 setlocale 功能的控制(本章的其他地方和其他章节将介绍此功能)。

特定于语言环境的转换例程(例如中文 cgbtoeuc)收集在 libcle 库中:

编译时通过 C 编译器选项 -lcle 可链接此库。

代码集内的转换

多字节转换函数与单字节转换函数 touppertolower 类似。这些函数将宽字符转换成其他宽字符。有关转换例程的更多信息,请参见 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 位) 

二进制兼容软件包 (BCP)

中文 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 应用程序之间不兼容,所以不能在二者之间剪切和粘贴中文字符。