File 使用COBOL将Unicode字符串写入文件
我们正在更新运行在IBM大型机(z/OS)上的COBOL程序,以支持非拉丁字符 我正在努力理解COBOL如何处理定义为PICN的UTF-16字符 我需要将当前定义为PIC X的字段更新为PIC N。然后将该字段写入文件 例如:File 使用COBOL将Unicode字符串写入文件,file,unicode,cobol,utf-16,ebcdic,File,Unicode,Cobol,Utf 16,Ebcdic,我们正在更新运行在IBM大型机(z/OS)上的COBOL程序,以支持非拉丁字符 我正在努力理解COBOL如何处理定义为PICN的UTF-16字符 我需要将当前定义为PIC X的字段更新为PIC N。然后将该字段写入文件 例如: 01 RecordToWrite PIC X(20). 我知道picn需要的空间是picx的两倍。我不知道的是如何定义相应的picn字段 我猜COBOL会自行处理转换: 01 RecordToWrite PIC N(20). 但我真的不确定是不是那么简单 我可以简单地
01 RecordToWrite PIC X(20).
我知道picn需要的空间是picx的两倍。我不知道的是如何定义相应的picn字段
我猜COBOL会自行处理转换:
01 RecordToWrite PIC N(20).
但我真的不确定是不是那么简单
我可以简单地将旧字段定义为picn,而不必担心我的文件看起来仍然一样吗?我需要采取哪些措施?您所在的领域:
01 RecordToWrite PIC N(20).
将消耗40个字节的20个字符。因此,您需要从X到N进行相应的调整
您可能还需要使用NATIONAL-of和DISPLAY-of函数将其转换为UTF-16或CCSID 1200。一旦您转换了数据,您就不需要再处理这些数据了,您的40字节/20字符PICN将像您以前的PICX字段一样工作——除非您必须与系统中未转换的部分进行对话。试试看;看看发生了什么我通常会这么做。不幸的是,我们的开发环境还没有设置合适的测试数据,我们的过程在升级到更高的测试级别时非常严格。在我的一个程序中,我只使用了一个PICX字段,该字段的大小是我所需的双字节字符的两倍