UTF-16字符串终止符

时间:2011-05-07 20:55:35

标签: c unicode utf-16 unicode-string

UTF-16字符串的字符串终止符序列是什么?

编辑:

让我重新解释一下这个问题,试图澄清一下。如何调用wcslen()

3 个答案:

答案 0 :(得分:14)

Unicode不定义字符串终止符。您的环境或语言。例如,C字符串使用0x0作为字符串终止符,其中.NET语言根本不使用字符串终止符 - 它们在String类中定义一个单独的值来存储字符串的长度。

要回答第二个问题,wcslen会查找终止L'\0'字符。其中I read it0x00个字节的长度,具体取决于编译器,但如果您使用的是UTF,则可能是双字节序列0x00 0x00 16(编码U+0000, 'NUL'

答案 1 :(得分:4)

没有。字符串终止符不是编码的一部分。

例如,如果你有字符串ab,它将以UTF-16编码,并具有以下字节序列:61 00 62 00。如果你有大家,你会得到27-59-B6-5B。因此,您可以看到没有预定的终止序列。

答案 2 :(得分:4)

  

7.24.4.6.1 wcslen函数(来自the Standard

     

...

   [#3]   The  wcslen  function  returns  the  number  of  wide
   characters that precede the terminating null wide character.

空宽字符为L'\0'