转换器编程概述
多文化支持为全球化提供了一个基础,通过这一基础,数据通常可以从一种代码集变为另一种代码集。 为此,提供了多种标准转换器支持。
数据被一个程序发送到另一个位于远程主机的程序时,可能需要从源机器的代码集转换为接收方的代码集。 例如,在与 VM 系统通信时,工作站要把自己的 ISO8859-1 数据转换为 EBCDIC 格式。
代码集定义了图形字符和控制字符的代码点分配。 当程序以一种代码集获得数据,而以另一种代码集显示数据时,这些经编码的字符也必须经过转换。
本系统提供了以下转换接口:
- iconv 命令
- 允许您通过指定 FromCode 和 ToCode 代码集来请求特定的转换。
- libiconv 函数
- 允许应用程序根据名称请求转换器。
本系统提供了现成可用的库和转换器。 这些转换器库可在 /usr/lib/nls/loc/iconv/* 和 /usr/lib/nls/loc/iconvTable/* 目录下找到。 除非绝对必要,否则请勿定义自己的转换器。
除了代码集转换器之外,转换器库还提供了一组网络交换转换器(interchange converter)。 在网络环境中,通信系统的代码集和通信协议决定了数据应该如何进行转换。
交换转换器用来转换从一个系统发送到另一个系统的数据。 从一种内部代码集到另一种代码集的转换过程需要代码集转换器。 当数据必须从发送方的代码集转换为接收方的代码集,或者从 8 位数据转为 7 位数据的时候,必需一个统一的接口。 iconv 子例程提供了这个接口。