%UTF2HEX および %HEX2UTFの Mユーティリティ・ルーチンは、UTF-8と16進コードポイント表現の間の変換を提供します。どちらのユーティリティもUTF-8モードでのみ動作します; Mモードでは、両方とも実行時エラーが発生します。
GT.M の %UTF2HEX ユーティリティは、UTF-8でエンコーディングされたGT.M文字列の内部エンコーディングのバイトの16進表記で返します。このルーチンは、対話的または非対話的のどちらの使用でのエントリポイントがあります。
DO ^%UTF2HEX は、%Sに格納されている文字列を16進バイト表記に変換し、その結果を%Uに格納します。
DO INT^%UTF2HEX は、インタラクティブに入力された文字列を16進バイト表記に変換し、その結果を%Uに格納します。
$$FUNC^%UTF2HEX(s) は、文字列 s の16進バイト表現を返します。
例:
GTM>write $zchset UTF-8 GTM>SET %S=$CHAR($$FUNC^%HD("0905"))_$CHAR($$FUNC^%HD("091A"))_$CHAR($$FUNC^%HD( "094D"))_$CHAR($$FUNC^%HD("091B"))_$CHAR($$FUNC^%HD("0940")) GTM>zwrite %S="अच्छी" GTM>DO ^%UTF2HEX GTM>zwrite %S="अच्छी" %U="E0A485E0A49AE0A58DE0A49BE0A580" GTM>write $$FUNC^%UTF2HEX("ABC") 414243 GTM>
%UTF2HEXは、UNIXバイナリ・ダンプ・ユーティリティ( od -x )と同様の機能を提供します。
GT.Mの %HEX2UTFユーティリティは、16進表記で指定されたバイトストリームからGT.MのUTFエンコードの文字列へ変換します。このルーチンは、対話的または非対話的のどちらの使用でのエントリポイントがあります。
DO ^%HEX2UTF は、%Uに格納された16進バイトストリームをGT.M文字列に変換し、その結果を %S に格納します。
DO INT^%HEX2UTF は、対話形式で入力された16進バイトストリームをGT.M文字列に変換し、その結果を%Sに格納します。
$$FUNC^%HEX2UTF(s) は、s の16進文字値で指定されたGT.M文字列を返します(各文字はUnicodeコードポイントで指定されます)。
例:
GTM>set u="E0A485" write $$FUNC^%HEX2UTF(u) अ GTM>set u="40E0A485" write $$FUNC^%HEX2UTF(u) @अ GTM>