%CHAR(文字 | グラフィック | UCS2 {: ccsid})

変更の始まり%CHAR は、文字、グラフィック、 または UCS-2 式の値を、特定の文字 CCSID の文字型に変換できます。 CCSID オペランドは、%CHAR 組み込み関数の結果の CCSID を指定します。変更の終わり

変更の始まりCCSID オペランドが指定された場合は、*HEX、*JOBRUN、*JOBRUNMIX、*UTF8、EBCDIC または ASCII CCSID を表す数値、値 65535 (*HEX と同じ)、または値 1208 (*UTF8 と同じ) となることがあります。変更の終わり

変更の始まりCCSID オペランドが指定されていない場合、 制御キーワード CCSID(*CHAR) で指定されるように、モジュールのデフォルト文字 CCSID に デフォルト設定されます。変更の終わり

変更の始まり文字オペランドの CCSID が *HEX の場合、変換は行われません。 オペランドのデータは、CCSID オペランドで指定された CCSID であると想定されます。 CCSID *HEX の文字データについては、文字形式を参照してください。変更の終わり

変更の始まりデータから文字 CCSID への変換で、一部の CCSID では すべてのデータを正常に変換できない場合があることについて、変換を 参照してください。変更の終わり

変更の始まりグラフィック・データで、%CHAR 戻り値の CCSID が EBCDIC CCSID の場合、 戻り値にはシフトイン文字およびシフトアウト文字が 含まれます。たとえば、5 文字の図形フィールドが変換される場合、戻り値は 12 文字 (10 バイトの図形データと 2 つのシフト文字) になります。式の値が可変長である場合、戻り値は 可変長形式になります。変更の終わり

詳細については、変換命令または 組み込み関数を参照してください。

変更の始まり

文字、グラフィック、および UCS-2 オペランドが指定された %CHAR の例

注: この例の GRAPHIC リテラルは、無効な GRAPHIC リテラルです。 詳しくは、グラフィック形式を参照してください。
D graphicName     S             20G   VARYING INZ(G'oXXYYZZi')
D greeting        S             20A   VARYING CCSID(*UTF8) INZ('Hello')
D message         S             30C   INZ('Successful operation')
D result          S            100A   VARYING
次の例では、グラフィック値を文字に変換します。 CCSID パラメーターは指定されていないため、 %CHAR 組み込み関数の結果の CCSID はモジュールのデフォルト文字 CCSID です。
   result = 'The customer''s name is ' + %CHAR(Name) + '.';
   // result = 'The customer's name is oXXYYZZi.'
次の例では、UTF-8 値をジョブ CCSID の文字に変換します。
   result = %CHAR(greeting : *JOBRUN);
   // result = 'Hello'
次の例では、UCS-2 値をジョブ CCSID の文字に変換します。
   result = %CHAR(message : *JOBRUN);
   // result = 'Successful operation'
変更の終わり