显示文件

创建显示文件对象时,将使用源文件的编码字符集标识 (CCSID) 对其进行标记。

在编译时:

  • 从主源文件读取所有字符数据,而不执行任何字符转换。
  • 用户消息文本 (由 DDS 中的 MSGCON 关键字标识) 保持不变,因为假定它与主源文件使用相同的 CCSID。

在运行时,将根据用于创建显示文件对象的 CHRID 参数值来转换常量数据。 此转换是可选的,仅当 CHRID 设置为 *JOBCCSID 或间接使用 CHRIDCTL 时才会发生此转换。 此转换是从显示文件 CCSID 到设备的字符标识 (CHRID)。 字段级关键字 NOCCSID (无编码字符集标识) 允许用户在 DDS 中指定永不转换的字段。

注: 要使用 CCSID 的数据管理支持,必须将以 CCSID 65535 标记的源物理文件更改为与数据关联的 CCSID 值。

"创建显示文件" 命令上的 CHRID 参数

"创建显示文件" (CRTDSPF) 命令上的 CHRID 参数会影响对显示文件进行的转换。

如果在 CRTDSPF 命令的 CHRID 参数上指定了 *JOBCCSID 值:

  • 输入字符从设备字符标识 (CHRID) 转换为作业 CCSID。
  • 将字符数据发送到可输出的字段,并从作业 CCSID 转换为设备 CHRID。
  • 来自显示文件的常量文本从显示文件的 CCSID 转换为设备的 CHRID。
  • 所有消息文件都使用 CCSID 进行标记。 将消息文本从消息文件的 CCSID 转换为设备的 CHRID。 当使用 CCSID 65535 (系统缺省值) 标记消息文件时,假定消息文件的内容已在设备的 CHRID 中。 要确保进行适当的转换,可以对消息启用 CCSID 支持。
  • 消息替换数据从作业的 CCSID 或从显示文件的 CCSID 转换为设备的 CHRID。
  • 使用除 65535 以外的 CCSID 标记的所有状态消息都将转换为设备的 CHRID。
  • 消息行或消息子文件 (由 DDS 中的 ERRMSG , ERRMSGID , SFLMSG 和 SFLMSGID 关键字标识) 中的消息的消息文本从消息文件 CCSID 转换为设备 CHRID。

如果在 CRTDSPF 命令上为 CHRID 参数指定了特定值,那么将在 CRTDSPF 命令上指定的 CHRID 与设备的 CHRID 之间进行转换。 此转换仅影响使用 CHRID DDS 关键字定义的字段。

如果在 CRTDSPF 命令的 CHRID 参数上指定了 *DEVD 值,那么不执行转换。 此为缺省设置。

使用 CCSID 65535 迁移显示文件

IBM i 许可程序第 3 版中的所有源文件的隐式 CCSID 值均为 65535。 要获得适当的 CCSID 支持,必须使用 CCSID 值不为 65535 的源文件重新编译显示文件 (如果满足下列任一条件):

  • 显示文件最初是从 CCSID 值为 65535 的源文件编译的。
  • 显示文件最初是在 OS/400 许可程序的第 2 版第 3 修改 0 版之前编译的。

通过重新编译,将标记显示文件对象,并在需要时进行所有必需的转换。

如果源文件显式地标记了 CCSID 65535 ,那么不会进行任何转换。