Codificación de caracteres – Unicode, ASCII y UTF-8

InformáticaDatos y sistema binarioEdades 15–16

Escribe una línea de texto para ver que cada carácter tiene un punto de código Unicode, que UTF-8 guarda en 1 a 4 bytes. Toca un carácter para ver cómo se reparten los bits de su punto de código entre los bytes y por qué é, € y los emoji necesitan 2, 3 y 4 bytes. El espacio Decodificar convierte una secuencia de bytes en hexadecimal o binario de nuevo en texto y marca los bytes no válidos; el espacio Mojibake muestra cómo se rompe el texto cuando los bytes UTF-8 se leen con una codificación antigua de un byte.

Lección: Datos de texto: ASCII, Unicode, codificación UTF-8, caracteres frente a bytes

Qué muestra

Los ordenadores guardan el texto como números. Unicode asigna a cada carácter un punto de código, escrito U+ seguido de cifras hexadecimales, mientras que ASCII solo cubre 128 caracteres con 7 bits. UTF-8 guarda cada punto de código en 1 a 4 bytes: el primer byte empieza por 0, 110, 1110 o 11110 para indicar la longitud, y cada byte siguiente empieza por 10. Por eso el texto ASCII no cambia en UTF-8, pero las letras con tilde, los símbolos y los emoji necesitan más bytes que caracteres. Leer bytes UTF-8 con una codificación de un byte produce texto ilegible llamado mojibake.

Cómo usarla

Elige una Muestra o escribe en el cuadro Texto y toca la tarjeta de un carácter para ver sus bits repartidos en bytes; compara el número de caracteres y de bytes. En Decodificar bytes, pulsa Tomar del texto o escribe bytes en hexadecimal y luego Bytes erróneos. En Mojibake, alterna entre Windows-1252 y Latin-1.

Parámetros que puedes cambiar

  • Espacio de trabajo Codificar texto en bytes, Decodificar bytes en texto, Texto ilegible (mojibake)
  • Texto de muestra Caracteres de 1, 2, 3, 4 bytes, Solo ASCII, Letras latinas con tilde, Símbolos y monedas, Emoji, Varios sistemas de escritura
  • Mostrar los bytes en binario
  • Codificación errónea usada al leer Windows-1252, Latin-1 (ISO-8859-1)

Preguntas para explorar

  1. ¿Por qué é necesita 2 bytes en UTF-8 y e solo 1 byte?
  2. ¿Cuántos bytes ocupa en UTF-8 una línea de cinco emoji?
  3. ¿Por qué la palabra café aparece a veces como café en una página web?