UTF-8 - это одна кодировка Юникода. UTF-16 и UTF-32 - это другие кодировки Unicode.
Unicode определяет числовое значение для каждого символа; символ степени имеет значение 0xB0 или 176 в десятичном значении. Unicode не определяет, как представлены эти числовые значения.
UTF-8 кодирует значение 0xB0
как два последовательных октета (байта) со значениями 0xC2 0xB0
.
UTF-16 кодирует то же значение, что и 0x00 0xB0
, или как 0xBo 0x00
, в зависимости от его соответствия.
UTF-32 кодирует его как 0x00 0x00 0x00 0xB0
или как 0xB0 0x00 0x00 0x00
, снова в зависимости от сущности (возможно, возможны другие заказы).
Есть тысячи символов, представление которых отличается от UTF-8 и UTF-16. Почему вы считаете, что символ степени заслуживает специального лечения? –
Вам нужно понять разницу между Unicode и различными кодировками. Прочтите ссылки, опубликованные пользователями. – tripleee
@MikeNakis: Я считаю, что * все * Кодовые точки Unicode имеют разные представления в UTF-8 и UTF-16. –