我在 UCS-2编码一个字符串。我需要这个字符串复制到另一个UCS-2字符串。复制之前我需要计算一个UCS-2字符串memeory分配的长度。

如何计算的UCS-2的字符串的长度?

有帮助吗?

解决方案

UCS2不携带有关字符串长度本身的信息。您的原始字符串表示要么是0,终止,在这种情况下,你可以检查一个0码单元(即16位的0值),或者不为0,终止,在这种情况下,你需要一些失关于字符串(例如一个单独存储缓冲器大小)的长度频带信息。

在一般情况下,UCS 2是UTF-16( HTTP的一个子集:// www.unicode.org/faq/basic_q.html#14 )。因此,你应该罚款与UTF-16工具,如ICU库 HTTP://site.icu- project.org/

其他提示

这取决于你使用的字符串类型。如果没有类型(只是已知含有在UCS-2编码字符串的内存缓冲区),你必须知道它是怎么来表示。它可以有一个预先考虑长度计数,或者是0终结就像普通的旧char *“C字符串”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top