COBOL2002 ユーザーズガイド
Unicode機能では,順編成ファイル,相対編成ファイル,および索引編成ファイルについては,文字コードを意識することなく,入出力できます。しかし,テキスト編成ファイルおよびCSV編成ファイルは,ほかのアプリケーションで参照可能とするため,文字コードをUTF-8に統一します。
テキスト編成ファイルでは,UTF-8で作成されたファイルの入出力ができます。この機能の規則を次に示します。
新規ファイル作成時にUnicodeシグニチャを出力しないようにする場合,実行時環境変数CBLD_ファイル名にTEXTSUPPRESSBOMを設定するか,または実行時環境変数CBLTEXTSUPPRESSBOMを設定します。
なお,この機能はテキスト編成ファイル作成時だけ有効です。
CBLD_ファイル名={TEXTSUPPRESSBOM|NOTEXTSUPPRESSBOM}
CBLTEXTSUPPRESSBOM=YES
表30-13 環境変数CBLTEXTSUPPRESSBOMと環境変数CBLD_ファイル名の指定の組み合わせによるUnicodeシグニチャの出力状態
CBLTEXTSUPPRESSBOM | CBLD_ファイル名 | ||
---|---|---|---|
TEXTSUPPRESSBOM | NOTEXTSUPPRESSBOM | 指定なし | |
YES | 出力しない | 出力する | 出力しない |
環境変数指定なし, または YES以外 |
出力しない | 出力する | 出力する |
CSV編成ファイルではUTF-8で作成されたファイルの入出力ができます。この機能の規則を次に示します。
CSV編成ファイルを入力する場合,対象ファイルはUTF-8で作成してください。対象ファイルのレコード記述項に用途がNATIONALの項目が定義されている場合,入出力時にUTF-8/UTF-16の相互変換をします。そのため,CSV編成ファイルにUTF-8以外の文字コードが含まれる場合,動作は保証しません。CSV編成ファイルの入出力について次に示します。
CSV編成ファイルでは,用途がNATIONALの項目の文字コードをUTF-16からUTF-8に変換することで,プログラム上のサイズと実際のレコードサイズが異なります。
IDENTIFICATION DIVISION. : DATA DIVISION. FILE SECTION. FD FILE01. 01 REC01 PIC X(5) USAGE DISPLAY. PROCEDURE DIVISION. : MOVE 'ABCDE' TO REC01. WRITE REC01.
IDENTIFICATION DIVISION. : DATA DIVISION. FILE SECTION. FD FILE02. 01 REC02 PIC N(5) USAGE NATIONAL. PROCEDURE DIVISION. : MOVE NC'あいうえお' TO REC02. WRITE REC02.
IDENTIFICATION DIVISION. : DATA DIVISION. FILE SECTION. FD FILE02. 01 REC02 PIC N(5) USAGE NATIONAL. PROCEDURE DIVISION. : READ FILE02.
CSV編成ファイルは,Unicodeシグニチャを含まないでください。CSV編成ファイルにUnicodeシグニチャが含まれる場合,データとして扱います。
順編成ファイル,相対編成ファイル,および索引編成ファイルを使用した入出力では,用途がNATIONALの項目についてUTF-16からUTF-8への自動変換はしません。この機能の規則を次に示します。
HiRDBによる索引編成ファイルを使用している場合,HiRDBのクライアント環境変数PDCLTCNVMODEには,NOUSE(デフォルト値)を指定してください。ほかの値を指定した場合,不当なコード変換によって入出力エラーになることがあります。
ACCEPT文で外部から入力したデータは,文字コードを変換しません。外部から入力することで,用途がDISPLAY/NATIONALの項目にUTF-8/UTF-16以外の文字データが格納されるときは,コード変換ライブラリを使用して入力データをUTF-8/UTF-16へ変換してください。
DISPLAY文で用途がDISPLAY/NATIONALの項目の内容を画面上に出力するとき,文字コードは変換しません。出力する内容がUnicodeの場合,文字情報を正しく出力するためにはコード変換ライブラリを使用し文字コードを変換してください。
DISPLAY文でファイルに出力する場合,指定した項目の用途にかかわらず,改行コードはX'0D0A'となります。
日本語,半角かたかななど,Unicodeの多バイト文字をCOBOLプログラムから直接画面表示はできません。
日本語,半角かたかななど,Unicodeの多バイト文字をCOBOLプログラムから直接印刷はできません。
All Rights Reserved. Copyright (C) 2013, 2016, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2002, 2011, Microsoft Corporation.