El texto son números
Un ordenador guarda el texto como números. Cada carácter tiene un punto de código (la letra A es 65, a es 97, 0 es 48), y una codificación decide cómo ese número se convierte en bytes. ASCII cubre 128 caracteres con un byte cada uno; Unicode cubre más de un millón, y UTF-8 es la codificación que los escribe como uno a cuatro bytes dejando ASCII intacto.
Así, Hi es 72 y 105, en binario 01001000 y 01101001, en hex 48 69. La é es el punto de código 233 pero se guarda como dos bytes, C3 A9; la marca ✓ son tres bytes, E2 9C 93; un emoji, cuatro.
Cómo empaqueta UTF-8 un punto de código
| Rango de puntos de código | Bytes | Disposición de bits |
|---|---|---|
| U+0000 – U+007F | 1 | 0xxxxxxx |
| U+0080 – U+07FF | 2 | 110xxxxx 10xxxxxx |
| U+0800 – U+FFFF | 3 | 1110xxxx 10xxxxxx 10xxxxxx |
| U+10000 – U+10FFFF | 4 | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
Los bits iniciales del primer byte dicen cuánto dura la secuencia, y cada byte de continuación empieza por 10. Ese diseño permite que un decodificador se resincronice tras un error y es la razón por la que se puede buscar en texto UTF-8 byte a byte.
Referencia ASCII
El ASCII imprimible va de 32 (espacio) a 126 (~). Los dígitos son 48–57, las mayúsculas 65–90, las minúsculas 97–122. La diferencia entre mayúsculas y minúsculas es exactamente el bit 5 (valor 32), por eso c | 0x20 convierte una letra ASCII a minúscula. Los códigos 0–31 son caracteres de control: 9 es tabulador, 10 es salto de línea, 13 es retorno de carro, 27 es escape.
Preguntas
¿Cómo convierto texto a binario a mano?
Busca el código ASCII de cada carácter (A = 65), convierte ese decimal a binario y rellena hasta 8 bits: 65 = 01000001. Los caracteres no ASCII deben convertirse primero a bytes UTF-8.
¿Por qué un carácter se convierte en más de un byte?
Porque UTF-8 usa 2, 3 o 4 bytes para todo lo que está fuera de ASCII. é es C3 A9, 日 es E6 97 A5, 😀 es F0 9F 98 80. La tabla bajo la herramienta lo muestra por carácter.
¿Cuál es el binario de la letra A?
01000001 (65 en decimal, 41 en hex). La a minúscula es 01100001 (97, hex 61): lo mismo con el bit 5 activado.
¿Por qué binario a texto da un error?
Cada grupo debe ser un byte (8 dígitos binarios o un valor de 0 a 255), y los bytes deben formar UTF-8 válido. Un byte suelto por encima de 127 o un byte de continuación sin byte inicial no es texto válido.
¿Es lo mismo que Base64?
No. Aquí ves los bytes reales del texto en una base legible. Base64 es otro esquema, más denso, para transportar bytes arbitrarios como texto. Mira la herramienta de Base64.