2010-02-18 67 views

回答

2

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

一般来说,UCS 2是UTF-16的一个子集(http://www.unicode.org/faq/basic_q.html#14)。因此,您应该可以使用UTF-16工具,例如ICU库http://site.icu-project.org/

1

这取决于您使用的字符串类型。如果没有类型(只是一个已知包含UCS-2编码字符串的内存缓冲区),则必须知道它是如何表示的。它可以有一个前置长度计数,或者像0 0终止,就像普通的旧的char *“C字符串”一样。

相关问题