Codificador / decodificador UTF-8
Escribe texto para ver sus bytes UTF-8 exactos en hex, decimal, binario, octal, escapes \x o codificación porcentual, o pega bytes para decodificarlos de vuelta a texto. La tabla de puntos de código muestra cómo se divide cada carácter en 1 a 4 bytes.
Última actualización:
Tabla de puntos de código
110 marcador de longitud · 10 marcador de continuación · 01001 bits del punto de código
| Car. | Punto de código | Bytes | Hex UTF-8 | Decimal | Patrón de bits |
|---|
Cómo usar Codificador / decodificador UTF-8
- Elige un modo: Codificar convierte texto en bytes UTF-8 y Decodificar convierte bytes de vuelta en texto.
- Elige el formato de bytes, por ejemplo hex con espacios, decimal, binario, escapes \x o codificación porcentual.
- Escribe o pega tu texto o tus bytes. El resultado se actualiza al instante mientras escribes.
- Revisa la tabla de puntos de código para ver el punto de código U+ de cada carácter y cómo se reparten sus bits entre los bytes.
- Copia o descarga el resultado, o pulsa Intercambiar para invertir la conversión.
Cómo codifica UTF-8 un carácter
UTF-8 escribe cada punto de código Unicode con 1 a 4 bytes. El primer byte indica cuántos bytes siguen, y cada byte siguiente empieza con los bits 10. Los bits del punto de código (x) se rellenan de izquierda a derecha:
| Rango de puntos de código | Bytes | Patrón de bits | Ejemplo |
|---|---|---|---|
| U+0000 a U+007F | 1 | 0xxxxxxx | A = 41 |
| U+0080 a U+07FF | 2 | 110xxxxx 10xxxxxx | é (U+00E9) = C3 A9 |
| U+0800 a U+FFFF | 3 | 1110xxxx 10xxxxxx 10xxxxxx | € (U+20AC) = E2 82 AC |
| U+10000 a U+10FFFF | 4 | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx | 😀 (U+1F600) = F0 9F 98 80 |
Ejemplo resuelto para €: U+20AC es 0010 0000 1010 1100 en binario. Divídelo en 4 + 6 + 6 bits: 0010, 000010, 101100. Añade los marcadores: 11100010, 10000010, 10101100 = E2 82 AC.
UTF-8 no válido y lo que informa el decodificador
- Byte de continuación inesperado (80 a BF sin byte inicial): suele indicar que el texto se cortó en medio de un carácter.
- Secuencia cortada al final: un byte inicial como E2 o F0 sin suficientes bytes siguientes, típico de búferes truncados.
- Codificación sobrelarga: un carácter codificado con más bytes de los necesarios, por ejemplo C0 AF para "/". Están prohibidas porque se usaban para burlar filtros de seguridad.
- Sustitutos y valores por encima de U+10FFFF: de ED A0 80 a ED BF BF (U+D800 a U+DFFF) y todo lo que supere F4 8F BF BF no es UTF-8 válido.
Cada secuencia no válida se convierte en un carácter de reemplazo U+FFFD (EF BF BD), siguiendo las mismas reglas que los navegadores (el WHATWG Encoding Standard).
Patrones comunes de mojibake
Cuando los bytes UTF-8 se leen como Windows-1252 o Latin-1 aparece la típica basura: é en lugar de é (C3 A9), € en lugar de € (E2 82 AC) y 😀 en lugar de 😀. Pega los caracteres corruptos en Codificar para ver qué bytes son, o convierte entre codificaciones con un convertidor de codificación de texto.
Preguntas frecuentes
¿Qué es UTF-8?
UTF-8 es la codificación de texto predominante en la web. Guarda cada punto de código Unicode en 1 a 4 bytes: los caracteres ASCII (U+0000 a U+007F) usan un byte, la mayoría de las letras latinas, griegas, cirílicas, hebreas y árabes usan dos, la mayoría de los demás sistemas de escritura, incluidos el chino, el japonés y el coreano, usan tres, y los emojis y otros caracteres por encima de U+FFFF usan cuatro.
¿Cómo convierto texto a hex UTF-8?
Escribe o pega el texto en el modo Codificar con el formato Hex seleccionado. Cada byte aparece como dos dígitos hexadecimales; por ejemplo, é se convierte en C3 A9 y € en E2 82 AC. Elige Ninguno como separador para obtener una cadena compacta como C3A9, o el formato \x para cadenas de bytes de C, Python y shell.
¿Cómo decodifico bytes UTF-8 a texto?
Cambia a Decodificar y pega los bytes. La herramienta detecta automáticamente hex (con o sin espacios o 0x), decimal, binario, octal, escapes \x y codificación porcentual %XX. También puedes forzar un formato si la entrada es ambigua; por ejemplo, 10 20 30 podría ser hex o decimal.
¿Por qué veo el carácter de reemplazo �?
La secuencia de bytes no es UTF-8 válido en ese punto; por ejemplo, un byte de continuación sin byte inicial, una secuencia cortada al final, una codificación sobrelarga o un byte como C0, C1 o de F5 a FF, que nunca aparece en UTF-8. El decodificador reemplaza cada secuencia incorrecta por U+FFFD e indica su posición de byte para que encuentres el problema.
¿Qué es el BOM de UTF-8?
La marca de orden de bytes EF BB BF es una firma opcional al inicio de un archivo UTF-8. UTF-8 no tiene orden de bytes, así que solo es una pista de que el archivo es UTF-8. Muchas herramientas, analizadores JSON y scripts de shell no la toleran bien, por lo que suele ser mejor omitirla. El decodificador elimina un BOM inicial y te avisa de que estaba ahí.
¿Cuántos bytes ocupa un carácter en UTF-8?
Depende del punto de código: de U+0000 a U+007F ocupan 1 byte, de U+0080 a U+07FF ocupan 2, de U+0800 a U+FFFF ocupan 3 y de U+10000 a U+10FFFF ocupan 4. Un emoji como 👍🏽 puede tener varios puntos de código, así que puede ocupar 8 bytes o más aunque parezca un solo carácter.
¿Se envía mi texto a un servidor?
No. La codificación y decodificación usan TextEncoder y TextDecoder, integrados en tu navegador, así que nada de lo que escribes o pegas sale de tu dispositivo.
¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?
Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.