多字节代码集的打印机代码页转换

从打印文件到代码集的多字节代码集 (MBCS) 的转换与单字节代码集 (SBCS) 代码点的转换不同。

多字节环境中打印文件到代码集的转换是一个两阶段的过程。

在代码集转换的第一阶段中,打印文件的输入代码集被转换为处理代码集。 处理代码集必须是 iconv 子例程和语言环境数据库(DB)支持的一个 MBCS 代码集。 示例包含 IBM-943、IBM-eucTW 和 IBM-eucKR 代码集。 在第二阶段期间,处理代码集被转换为适用于打印机的输出代码集。 如果用于转换的 iconv 转换器存在,那么 iconv 子例程将转换代码集。 当输入或输出代码集和处理代码相同,那么不会执行任何代码集转换。

打印机相关冒号文件中的 TiTo 属性定义了转换代码集可能的流程。 Ti 属性指定输入代码和处理代码集的组合:

[Input_code_set, ... ]Process_code_set, ...

To 属性指定处理代码和输出代码的组合:

Process_code_set [Output_code_set0, Output_code_set1,
Output_code_set2, Output_code_set3,... ], ...

例如,日语打印机的 To 属性定义为:

::To::IBM-943[IBM-932, IBM-932, IBM-932], ibm-eucJP[IBM-932,
IBM-932, IBM-932,IBM-932]

当对每个字符集标识(CSID)都指定输出代码集时,CSID 的所有字符都使用 ROM 字体打印。 否则,将使用 Xwindows 字体的位图映像。 通过从 /usr/lib/X11/nls 目录中读取文件来选择 Xwindows 字体文件的类型,包括每个 CSID 的字体图像。