文章目录

第七十二章 Caché 函数大全 $WISWIDE 函数

返回一个标志,该标志指示字符串是否包含代理对。

大纲
$WISWIDE(string)

参数

  • string 字符串或计算结果为字符串的表达式。
描述

$WISWIDE返回一个布尔值,该值指示字符串是否包含代理对。 0 =字符串不包含任何代理对。 1 =字符串包含一个或多个代理对。

代理对是一对16位Caché字符元素,它们一起编码一个Unicode字符。代理对用于代表某些表意文字,这些表意文字用于中文,日文汉字和韩文汉字。 (大多数常用的中文,汉字和汉字字符由标准的16位Unicode编码表示。)代理对为日语JIS X0213:2004(JIS2004)编码标准和中文GB18030编码标准提供了Caché支持。

代理对由在十六进制范围D800至DBFF中的高阶16位字符元素和在十六进制范围DC00至DFFF中的低阶16位字符元素组成。

示例

以下示例显示$WISWIDE返回代理对的布尔值:

/// d ##class(PHA.TEST.Function).WISWIDE()
ClassMethod WISWIDE()
{
	IF $SYSTEM.Version.IsUnicode()  {
		SET spair=$CHAR($ZHEX("D806"),$ZHEX("DC06")) /* surrogate pair */
		SET xpair=$CHAR($ZHEX("DC06"),$ZHEX("D806")) /* NOT a surrogate pair */
		SET str="AB"_spair_"CD"
		WRITE !,$WISWIDE(str)," = surrogate pair(s) in string?"
		SET xstr="AB"_xpair_"CD"
		WRITE !,$WISWIDE(xstr)," = surrogate pair(s) in string?"
	} ELSE {
		WRITE "This example requires a Unicode installation of Caché"
	}
}
DHC-APP>d ##class(PHA.TEST.Function).WISWIDE()
 
1 = surrogate pair(s) in string?
0 = surrogate pair(s) in string?