utf-8 null和utf-16/utf-32 null是相同的吗?

4

在UTF-16和UTF-32中,一个字节的零是否表示空值?就像在UTF-8中一样,还是我们需要分别使用2个和4个字节的零来创建UTF-16和UTF-32中的空值?

1个回答

10

在UTF-16中,它需要两个字节,而在UTF-32中则需要4个字节。

否则,你将无法区分一个字符的编码值刚好以零字节开头和表示U+0000的单个零字节之间的区别。

基本上,UTF-16以2个字节为块工作,而UTF-32以4个字节为块工作。(诚然,对于BMP之外的字符,您需要两个UTF-16的“块”,但原理仍然相同。)如果要实现UTF-16解码器,您将一次读取两个字节。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接