检查 Unicode 兼容性

在升级到 Unicode 版本时,您需要验证已添加到脚本的所有自定义逻辑在针对 Unicode 数据运行时能够产生相同的结果。在针对 Unicode 数据运行脚本时,有一些可以预测的可能受到影响的方面。

位和字符函数

下列每个函数都根据字节位置或字节计数返回值。您需要检查以确保在从非 Unicode 版本中使用的单字节字符表示形式迁移到用于 Unicode 数据的双字节字符编码时,这些函数仍被正确使用:

  • ASCII( )

  • BIT( )

  • BYTE( )

  • CHR( )

  • DIGIT( )

  • HEX( )

  • MASK( )

  • SHIFT( )

字节长度不等于字符长度

您需要检查下列函数在您脚本中的用法,确保它们它们没有假定数据中的字符数和字节数之间存在一一对应的关系。

如果发现任何实例的逻辑假定字符和字节之间存在一一对应的关系,则必须调整逻辑以正确处理 Unicode 数据,即使用两个字节表示每个字符。被指定为字符串函数参数的数字,如 STRING(1000, 4) 中的 4,是指字符数,因此这些函数的标准用法不会导致问题。

转换函数

  • PACKED( )

  • STRING( )

  • UNSIGNED( )

  • VALUE( )

  • ZONED( )

字符串函数

  • AT( )

  • BLANKS( )

  • INSERT( )

  • LAST( )

  • LENGTH( )

  • REPEAT( )

  • SUBSTRING( )

杂项函数

  • FILESIZE( )

  • LEADING( )

  • OFFSET( )

  • RECLEN( )

取代 Unicode 专用函数

Galvanize Unicode 产品支持六个 Unicode 专用函数,它们支持非 Unicode 数据和 Unicode 数据之间的转换。Unicode 产品中提供以下函数:

  • BINTOSTR( ) 将 ZONED 或 EBCDIC 数据转换为相应的 Unicode 字符串。这可确保正确显示被编码为 ZONED 或 EBCDIC 数据的值。
  • DHEX( ) 返回指定的 Unicode 域值的等效 16 进制值。此函数是 HTOU( ) 的逆函数。
  • DBYTE( ) 返回记录中指定位置的双字节字符的 Unicode 字符表示形式。
  • DTOU( ) 根据指定的区域选项设置,将日期值转换为正确的 Unicode 字符串显示形式。
  • HTOU( ) 返回指定的 16 进制字符串的 Unicode 等效值。此函数是 DHEX( ) 的逆函数。
  • UTOD( ) 将区域选项特定的 Unicode 字符串转换为 Analytics 日期值。
ACL 脚本指南 14.1