处理 ASCII 多字节 和 EBCDIC DBCS 字符串中的差异
要使包含双字节字符集(DBCS)字符的字母数字数据项获得 Enterprise COBOL 正确行为,请使用 和 SOSI CHAR(EBCDIC) 编译器选项。 要避免 ASCII DBCS 和 EBCDIC DBCS 字符之间的不同数据表示出现问题,请使用 CHAR(EBCDIC) 编译器选项。
关于此任务
在字母数字数据项中, Enterprise COBOL 双字节字符串(包含EBCDIC DBCS字符)被包含在移位代码中,而 COBOL for Linux® on x86 多字节字符串(包含ASCII DBCS、 UTF-8 或EUC 字符)则不包含在移位代码中。 用于表示相同字符的十六进制值也不同。
在双字节字符集数据项中, Enterprise COBOL 双字节字符串不使用移位码封装,但用于表示字符的十六进制值与多字节 COBOL for Linux on x86 字符串中表示相同字符的十六进制值不同。
对于大多数节目来说,这些差异不应该让移植变得困难。 但是,如果程序依赖于多字节字符串的十六进制值,或者期望字母数字字符串包含单字节字符和多字节字符的混合,请在编码实践中谨慎操作。