$WREVERSE (ObjectScript)
構文
$WREVERSE(string)
$WRE(string)
引数
引数 | 説明 |
---|---|
string | 文字列または文字列に評価する式 |
説明
$WREVERSE は、string 内の文字を逆の順序で返します。$WREVERSE は $REVERSE と機能的に同じですが、$WREVERSE がサロゲート・ペアを認識する点が異なります。$WISWIDE 関数を使用して、文字列にサロゲート・ペアが含まれているかどうかを判断することができます。
サロゲート・ペアは、単一の Unicode 文字を一緒にエンコードする 16 ビットの InterSystems IRIS 文字要素のペアです。サロゲート・ペアは、中国語、日本語の漢字、韓国語のハンジャ文字で使用されている特定の表意文字を表すために使用されます (頻繁に使用される中国語、漢字、およびハンジャ文字は、標準 16 ビットの Unicode エンコードで表されます)。サロゲート・ペアにより、InterSystems IRIS は日本語 JIS X0213:2004 (JIS2004) エンコーディング標準および中国語 GB18030 エンコーディング標準をサポートします。
サロゲート・ペアは、16 進数の D800 ~ DBFF の範囲の高位 16 ビット文字要素と、16 進数の DC00 ~ DFFF の範囲の下位 16 ビット文字要素で構成されます。
$WREVERSE 関数は、サロゲート・ペアを単一の文字としてカウントします。$REVERSE 関数は、サロゲート・ペアを 2 文字として処理します。その他の点では、$WREVERSE と $REVERSE は機能的に同じです。ただし、$REVERSE は通常 $WREVERSE より高速なため、サロゲート・ペアが出現しない場合は常に $REVERSE が推奨されます。
文字列の反転の詳細は、$REVERSE 関数を参照してください。
例
以下の例は、$WREVERSE が単一の文字としてサロゲート・ペアを処理する方法を示します。
SET spair=$CHAR($ZHEX("D806"),$ZHEX("DC06"))
SET str="AB"_spair_"CD"
WRITE !,"String before reversing:"
ZZDUMP str
SET wrev=$WREVERSE(str)
WRITE !,"$WREVERSE did not reverse surrogate pair:"
ZZDUMP wrev
SET rev=$REVERSE(str)
WRITE !,"$REVERSE reversed surrogate pair:"
ZZDUMP rev