2017-08-05 219 views
3

我们正在更新在IBM大型机(z/OS)上运行的COBOL程序以支持非拉丁字符。使用COBOL将Unicode字符串写入文件

我挣扎了一下与理解COBOL如何处理定义为PIC N. UTF-16字符

我需要更新目前被定义为PIC X字段与PIC单片机N.此字段,被写入文件。

例子:

01 RecordToWrite PIC X(20). 

我明白PICň需要两倍的空间作为PIC X.我不知道是怎么定义相应的PIC N字段。

我的猜测是COBOL需要转换自己的护理:

01 RecordToWrite PIC N(20). 

但我真的不知道,如果就这么简单。

我可以简单地将旧字段定义为PIC N,而不必担心我的文件看起来相同吗?我需要采取哪些措施?

+0

尝试一下;看看会发生什么 –

+0

这就是我通常会做的。不幸的是,我们的DEV环境尚未建立合适的测试数据,而我们的流程对于提升到更高的测试水平非常严格。 – Chris

+0

在我的一个程序中,我只使用了一个PIC X字段,该字段是我需要的双倍字节字符的两倍 – SaggingRufus

回答

0

你的领域:

01 RecordToWrite PIC N(20). 

会消耗40个字节,它的20个字符。因此,您需要进行相应的调整,从X到N.

您可能还需要使用NATIONAL-OF和DISPLAY-OF函数将其转换为UTF-16或CCSID 1200.一旦转换你的数据,你不需要再搞这个了,你的40字节/ 20字符图像N的行为就像你以前的Pic X字段一样 - 除非你必须与未转换的系统部分对话。

相关问题