2017-08-05 53 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字段一樣 - 除非你必須與未轉換的系統部分對話。