在 utf16 和 utf32 中,一个字节的零是否意味着空?就像在 utf8 中一样,还是我们需要 2 个和 4 个字节的零来相应地在 utf16 和 utf32 中创建 null?

最佳答案

在 UTF-16 中它将是两个字节,在 UTF-32 中它将是 4 个字节。

毕竟,否则您无法区分编码值刚好以零字节开头的字符和表示 U+0000 的单个零字节。

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

关于unicode - utf-8 null 和 utf-16/utf-32 null 一样吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2685730/

10-16 15:09