在ICU UnicodeString中countChar32()和length()有什么区别?

来自文档; 长度是UnicodeString中UChar代码单元的数量。如果您想要代码点数,请使用countChar32()。 和 计算Unicode代码点的长度为字符串的UChar代码单位。 代码点可以占用一个或两个UChar代码单元。计算代码点涉及读取所有代码单元。 由此我倾向于认为代码点是一个实际的字符,代码单元只是一个字符的一个可能的部分。 例如。 假设你有一个unicode字符串,如: 'foobar的' 长度和countChar32都是6.然后说你有一个由6个字符组成的字符串,它取整个32位进行编码,长度为12,但countChar32为6。 它是否正确?     
已邀请:
如果您使用基本多语言平面(BMP)之外的字符,这两个值将只有不同。这些字符以UTF-16表示为代理对。两个16位字符组成一个逻辑字符。如果您使用其中任何一个,则每对计为一个32位字符,但两个长度元素。     

要回复问题请先登录注册