UTF-16字符串的字符串终止符序列是什么?
编辑:
让我重新解释一下这个问题,试图澄清一下。如何调用wcslen()
?
答案 0 :(得分:14)
Unicode不定义字符串终止符。您的环境或语言。例如,C字符串使用0x0作为字符串终止符,其中.NET语言根本不使用字符串终止符 - 它们在String
类中定义一个单独的值来存储字符串的长度。
要回答第二个问题,wcslen
会查找终止L'\0'
字符。其中I read it为0x00
个字节的长度,具体取决于编译器,但如果您使用的是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'