UTF-8 es una codificación de Unicode. UTF-16 y UTF-32 son otras codificaciones de Unicode.
Unicode define un valor numérico para cada carácter; el símbolo de grado pasa a ser 0xB0, o 176 en decimal. Unicode no define cómo se representan esos valores numéricos.
UTF-8 codifica el valor 0xB0
como dos octetos consecutivos (bytes) con los valores 0xC2 0xB0
.
UTF-16 codifica el mismo valor como 0x00 0xB0
o como 0xBo 0x00
, según endianness.
UTF-32 lo codifica como 0x00 0x00 0x00 0xB0
o como 0xB0 0x00 0x00 0x00
, de nuevo dependiendo del endianness (supongo que es posible hacer otros pedidos).
Hay miles de caracteres cuya representación difiere entre UTF-8 y UTF-16. ¿Qué te hace creer que el símbolo de grado merece un trato especial? –
Necesita comprender la diferencia entre Unicode y sus diversas codificaciones. Lea los enlaces que la gente ha publicado. – tripleee
@MikeNakis: Creo que * todos * los puntos de código Unicode tienen representaciones diferentes en UTF-8 y UTF-16. –