2017-08-05 14 views
3

IBMメインフレーム(z/OS)上で動作するCOBOLプログラムを更新して、非ラテン文字をサポートしています。COBOLを使用してUnicode文字列をファイルに書き込む

私はCOBOLは、私は、このフィールド現在PIC NにPIC Xとして定義されたフィールドを更新する必要がPICのN.

として定義された文字が、その後に書き込まれますUTF-16をどのように処理するかを理解した上で少し苦労していますファイル。

例:

01 RecordToWrite PIC X(20). 

私はPIC Nは、私は知らない何PIC Xの2倍のスペースが対応するPIC Nフィールドを定義する方法である必要があります理解しています。

01 RecordToWrite PIC N(20). 
しかし、私は本当にそれがシンプルだかはわからない:

私の推測では、COBOLは、変換自体の面倒を見ることになります。

私のファイルが同じように見えることなく、古いフィールドをPIC Nとして定義することはできますか?どの措置を講じる必要がありますか?

+0

お試しください。何が起こるかを見てください –

+0

それは私が通常やることです。残念ながら、私たちのDEV環境はまだ適切なテストデータでセットアップされておらず、より高いテストレベルへの昇格については私たちのプロセスは非常に厳しいものです。 – Chris

+0

私のプログラムの1つでは、2倍のバイト文字を考慮する必要があるサイズの2倍のPIC Xフィールドを使用しました – SaggingRufus

答えて

0

あなたのフィールド:

01 RecordToWrite PIC N(20). 

は20文字のために、40のバイトを消費します。したがって、対応する調整をXからNにする必要があります。

NATIONAL-OF関数とDISPLAY-OF関数を使用してUTF-16またはCCSID 1200にする必要があります。変換したらあなたのデータ、あなたはそれ以上それを混乱させる必要はありません、あなたのシステムの変換されていない部分と話している場合を除き、あなたの40バイト/ 20文字のPic Nはあなたの古いPic Xフィールドのように振る舞います。

関連する問題