次の例は、呼び出し可能サービス _iwzGetLocaleCP および _iwzGetCCSID を使用して、 有効なロケールと EBCDIC コード・ページをそれぞれ取得し、 コード・ページ ID を対応する CCSID に変換する方法を示しています。
cbl pgmname(lm)
Identification Division.
Program-ID. “Samp1”.
Data Division.
Working-Storage Section.
01 locale-in-effect.
05 ll-cc pic x(5).
05 filler-period pic x.
05 ASCII-CP Pic x(14).
01 EBCDIC-CP pic x(10).
01 CCSID pic s9(5) comp-5.
01 RC pic s9(5) comp-5.
01 n pic 99.
Procedure Division.
Get-locale-and-codepages section.
Get-locale.
Display “Start Samp1.”
Call “_iwzGetLocaleCP”
using locale-in-effect, EBCDIC-CP
Move 0 to n
Inspect locale-in-effect
tallying n for characters before initial x'00'
Display “locale in effect: ” locale-in-effect (1 : n)
Move 0 to n
Inspect EBCDIC-CP
tallying n for characters before initial x'00'
Display “EBCDIC code page in effect: ”
EBCDIC-CP (1 : n).
Get-CCSID-for-EBCDIC-CP.
Call “_iwzGetCCSID” using EBCDIC-CP, CCSID returning RC
Evaluate RC
When 0
Display “CCSID for ” EBCDIC-CP (1 : n) “ is ” CCSID
When 1
Display EBCDIC-CP (1 : n)
“ does not have a CCSID value.”
When other
Display EBCDIC-CP (1 : n) “ is not a valid code page.”
End-Evaluate.
Done.
Goback.
ロケールを ja_JP.IBM-943 (set LC_ALL=ja_JP.IBM-943) に設定した場合、このサンプル・プログラムからの出力は次のようになります。
Start Samp1. locale in effect: ja_JP.IBM-943 EBCDIC code page in effect: IBM-1399 CCSID for IBM-1399 is 0000001399
関連タスク
環境変数を使用したロケールの指定