Solaris 8 简体中文转换工具

【Solaris 8 简体中文转换工具】
本节描述宽字符和字符串输入输出的功能,字符分类和简体中文字符集转换功能等 。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 的特别例程 (例如 isc xxx) 在头文件 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 库里:


简体中文大小写转换功能 (在 zh/xctype.h 中声明):

tocupper
将代码集 1 中的小写罗马字母转换成大写字母

toclower
将代码集 1 中的大写罗马字母转换成小写字母


简体中文代码集之间的转换
简体中文字符集中,代码集 0 里的罗马字符和数字在代码集 1 里重复出现 。以下功能测试宽字符 。


简体中文代码集转换功能块:

atocgb
将在 ASCII (代码集 0) 里的字母或数字字符转换成相应的在 GB-2312-80 (代码集 1) 里的字符 。

cgbtoa
将在 GB-2312-80 (代码集 1) 里的字母或数字字符转换成相应的在 ASCII (代码集 0) 里的字符 。


要获得更多的关于这些例程的信息,参见手册页 cconv() (3x) 。

简体中文字符代码转换
以下例程在 GB-2312-80 字符集上作基于字符的代码转换 。它们在 EUC 格式和 GB-2312-80 格式之间对字符和字符串作转换 。要使用这些例程必须连接 lib cle 库,可使用 C 语言编译器选项 -lcle 实现连接 。要获得更多的信息,参见 cconv (3x) 手册页 。



简体中文基于字符的功能 :
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

推荐阅读