我们正在更新在 IBM 大型机 (z/OS) 上运行的 COBOL 程序以支持非拉丁字符。
我有点难以理解 COBOL 如何处理定义为 PIC N 的 UTF-16 字符。
我需要将当前定义为 PIC X 的字段更新为 PIC N。然后该字段被写入文件。
例子:
01 RecordToWrite PIC X(20).
我知道PIC N 需要的空间是PIC X 的两倍。我不知道如何定义相应的PIC N 字段。
我猜 COBOL 会自己处理转换:
01 RecordToWrite PIC N(20).
但我真的不确定是不是这么简单。
我可以简单地将旧字段定义为 PIC N 而不必担心我的文件看起来还是一样吗?我需要采取哪些措施?
最佳答案
你的领域:
01 RecordToWrite PIC N(20).
20 个字符将占用 40 个字节。因此,您需要从 X 到 N 进行相应的调整。
您可能还需要使用 NATIONAL-OF 和 DISPLAY-OF 函数将其转换为 UTF-16 或 CCSID 1200。一旦您转换了数据,就不需要再弄乱它了,并且您的 40 字节/20 字符 Pic N 的行为将与您的旧 Pic X 字段一样——除非您必须与系统的未转换部分对话。
关于file - 使用 COBOL 将 Unicode 字符串写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45521776/