处理双字节字符

由于存在大量双字节字符,IBM i 操作系统识别每个双字节字符所需的信息比识别每个字母数字字符所需的信息还要多。

有两种类型的双字节字符: 基本字符和扩展字符。 这些字符通常由显示或打印这些字符的设备处理。

基本双字节字符

基本字符是频繁使用的双字节字符,它们驻留在支持 DBCS 的设备的硬件中。 设备中存储的双字节字符数随支持的语言以及设备的存储器大小的不同而有所变化。 支持 DBCS 的设备可以显示或打印基本字符,而不必使用操作系统的扩展字符处理功能。

双字节扩展字符

处理扩展字符时,设备需要系统的帮助。 在设备可显示或打印该字符之前,系统必须告诉设备该字符的模样。 扩展字符存储在 DBCS 字体表中,而不是存储在支持 DBCS 的设备中。 显示或打印扩展字符时,设备在操作系统的控制下,从 DBCS 字体表接收扩展字符。

扩展字符处理是操作系统的一个功能,要将字符存储在可供支持 DBCS 的设备使用的 DBCS 字体表中,此功能是必需的。

要请求扩展字符处理,当您创建屏幕 (CRTDSPF) 或创建处理双字节数据的打印机文件 (CRTPRTF) 命令时,在文件创建命令上指定双字节扩展字符参数 IGCEXNCHR (*YES)。 因为 IGCEXNCHR(*YES) 是缺省值,所以除非另有所指,否则系统自动处理扩展字符。 可以使用更改文件 (CHGDSPF) 或 (CHGPRTF) 命令来更改此文件属性。 可以使用覆盖显示文件 (OVRDSPF) 或覆盖 printerfile (OVRPRTF) 命令覆盖文件属性。 例如,要覆盖显示文件 DBCSDSPF 以便处理扩展字符,请输入:

OVRDSPF DSPF(DBCSDSPF) IGCEXNCHR(*YES)
注:
  1. 在处理字母数字文件时,系统忽略 IGCEXNCHR 参数。
  2. 使用日语 5583 打印机打印扩展字符时,必须使用 "高级 DBCS 打印机支持" 许可程序的 Kanji 打印功能。

未处理扩展字符时发生的情况

如果未处理扩展字符,那么会发生以下事件:

  • 显示和打印基本双字节字符。
  • 在显示时,系统将显示未定义的字符,否则将显示扩展字符。
  • 在打印输出时,系统将打印未定义的字符,否则将打印扩展字符。
  • 扩展字符虽然不显示或打印出来,但仍正确地存储在系统中。