変更内容
不当なデータによる誤動作を防ぐため、DISPLAY文、STRING文(書き方2)、UNSTRING文(書き方2)、印刷ファイルのWRITE文のデータ項目に格納されたデータのコード変換の結果がV10.5以前とV11.0以降で変更になりました。
変換元の文字コード系の範囲外のデータのコード変換
文字コード系の範囲外のデータをコード変換した場合の変換結果が異なります。
代替文字または文字が割り当たっていないコードなどに変換されます。
実行時にコード変換エラーになり、以下のメッセージが出力されます。詳細コード 42 (0x2a)
DISPLAY文 : JMP0086I-W
STRING文(書き方2)、UNSTRING文(書き方2) : オーバフロー条件が生じます。ON OVERFLOW指定がない場合はJMP0260I-U
印刷ファイルのWRITE文 : JMP0310I-I/U、JMP0320I-I/U (ファイルの入出力エラーが発生したときの実行結果に沿って実行されます。)
不完全な文字のコード変換
サロゲートペアのコードが単独(上位または下位のみ)で格納されている、多バイト文字が欠けているなどの不完全な文字をコード変換した場合の変換結果が異なります。
代替文字に変換されます。
実行時にコード変換エラーになり、以下のメッセージが出力されます。詳細コード 22 (0x16) または 42 (0x2a)
DISPLAY文 : JMP0086I-W
STRING文(書き方2)、UNSTRING文(書き方2) : オーバフロー条件が生じます。ON OVERFLOW指定がない場合はJMP0260I-U
印刷ファイルのWRITE文 : JMP0310I-I/U、JMP0320I-I/U (ファイルの入出力エラーが発生したときの実行結果に沿って実行されます。)
対処方法
実行環境変数@CBR_CONVERT_CHARACTER=SYSTEMを指定して実行してください。