その引数(複数可)で指定された整数のASCIIコードに対応する1つ以上の文字の文字列を返します。UTF-8モードでプロセスが起動する場合は、$CHAR() は、その引数(複数)で指定されたユニコードのコードポイントに対応する整数値によって表される文字で構成される文字列を返します。
$CHAR関数のフォーマット:
$C[HAR](intexpr[,...])
整数式(intexpr) (複数あり)は、$CHAR() が返す文字(複数あり)のコードを指定します。
Mの標準規格は、$CHAR() の引数の数を制限しません。しかし、GT.Mは引数の数を最大254に制限します。このような文字がMのリテラル文字列内で直接表示できないように、$CHAR() は、非グラフィック文字を生成する手段を提供します。$CHAR() と $ASCII() の併用は、文字に関連付けられたコードで算術演算もまた実行できます。
もし任意の式が、ユニコードの文字ではないコードポイントの値に評価された場合、VIEW "BADCHAR"を有効にすると、$CHAR() は、実行時エラーを生成します。 GT.Mは、文字が不正となるICUから決定します。
$ZCHAR() は、$CHAR() の併用可能な関数です。$ZCHAR() はバイトのシーケンス(文字のシーケンスよりもむしろ)を返し、すべてのバイト指向の$CHAR() の操作を実行できます。 詳細な情報については、 “$ZCHar()”を参照してください。
例:
GTM>write $char(77,85,77,80,83,7) MUMPS GTM>
この例では、単語の "MUMPS" をWRITEしターミナル "ベル:bell" を通知するために$CHAR() を使用します。
例:
set nam=$extract(nam,1,$length(nam)-1)_$char($ascii(nam,$length(nam))-1)
この例では、変数 nam と同じ長さの文字列のセットでその以前の値の直前の値に変数 nam をセットするために $CHAR() と $ASCII() を使用します。
例:
GTM>write $zchset
UTF-8
GTM>write $char(20027)
主
GTM>write $char(65)
A
上記の例では、整数値 20027は、UnicodeのCJK表意文字ブロックのUnicode文字 "主" です。0から127までの整数式の値の$CHAR関数の出力は、文字エンコーディング方式の選択によって異ならないことに、注意してください。これは、7ビットASCII は UTF-8 文字エンコーディング方式の適切なサブセットであるためです。値が128〜255となる$CHAR() 関数によって返される文字の表現は、それぞれの文字のエンコーディング方式によって異なります。