第七十三章 Caché 函数大全 $WLENGTH 函数
返回字符串中的字符数,识别代理对。
大纲
$WLENGTH(string)
$WL(string)
参数
- string 字符串或表达式,其值为字符串。
描述
$WLENGTH
返回字符串中的字符数。 $WLENGTH
在功能上与$LENGTH
相同,只是$WLENGTH
可以识别代理对。它将代理对视为单个字符。可以使用$WISWIDE
函数确定字符串是否包含代理对。
代理对是一对16位Caché字符元素,它们一起编码一个Unicode字符。代理对用于代表某些表意文字,这些表意文字用于中文,日文汉字和韩文汉字。 (大多数常用的中文,汉字和汉字字符由标准的16位Unicode编码表示。)代理对为日语JIS X0213:2004(JIS2004)编码标准和中文GB18030编码标准提供了Caché支持。
代理对由在十六进制范围D800至DBFF中的高阶16位字符元素和在十六进制范围DC00至DFFF中的低阶16位字符元素组成。
$WLENGTH
函数将代理对计为单个字符。 $LENGTH
函数将一个代理对视为两个字符。在所有其他方面,$WLENGTH
和$LENGTH
在功能上是相同的。但是,由于$LENGTH
通常比$WLENGTH
快,因此对于不太可能遇到代理对的所有情况,$LENGTH
是更可取的。
示例
下面的示例显示$WLENGTH
如何将代理对作为单个字符进行计数:
/// d ##class(PHA.TEST.Function).WLENGTH()
ClassMethod WLENGTH()
{
IF $SYSTEM.Version.IsUnicode() {
SET spair=$CHAR($ZHEX("D806"),$ZHEX("DC06"))
SET str="AB"_spair_"CD"
WRITE !,$LENGTH(str)," $LENGTH characters in string"
WRITE !,$WLENGTH(str)," $WLENGTH characters in string"
} ELSE {
WRITE "This example requires a Unicode installation of Caché"
}
}
DHC-APP>d ##class(PHA.TEST.Function).WLENGTH()
6 $LENGTH characters in string
5 $WLENGTH characters in string
网友评论