返回一个标志,该标志指示字符串是否包含代理对。
大纲$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?