Является ли utf-8 null таким же, как utf-16 / utf-32 null? - PullRequest
4 голосов
/ 21 апреля 2010

Значит ли один байт нулей в utf16 и utf32? как в utf8 или нам нужны 2 и 4 байта нулей для создания нуля в utf16 и utf32 соответственно?

1 Ответ

10 голосов
/ 21 апреля 2010

В UTF-16 это будет два байта, а в UTF-32 это будет 4 байта.

В конце концов, в противном случае вы не могли бы провести различие между символом, кодированное значение которого, как оказалось, начиналось с нулевого байта и одного нулевого байта, представляющего U + 0000.

В основном UTF-16 работает в блоках по 2 байта, а UTF-32 работает в блоках по 4 байта. (По общему признанию для символов вне BMP вам нужны два «блока» UTF-16, но принцип все тот же.) Если бы вы реализовали декодер UTF-16, вы бы прочитали два байта за один раз.

...