Inicio › Herramientas para desarrolladores › Codificador / decodificador UTF-8

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:

Ejemplos:
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ódigoBytesHex UTF-8DecimalPatrón de bits
Publicidad
Publicidad

Cómo usar Codificador / decodificador UTF-8

  1. Elige un modo: Codificar convierte texto en bytes UTF-8 y Decodificar convierte bytes de vuelta en texto.
  2. Elige el formato de bytes, por ejemplo hex con espacios, decimal, binario, escapes \x o codificación porcentual.
  3. Escribe o pega tu texto o tus bytes. El resultado se actualiza al instante mientras escribes.
  4. 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.
  5. 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ódigoBytesPatrón de bitsEjemplo
U+0000 a U+007F10xxxxxxxA = 41
U+0080 a U+07FF2110xxxxx 10xxxxxxé (U+00E9) = C3 A9
U+0800 a U+FFFF31110xxxx 10xxxxxx 10xxxxxx€ (U+20AC) = E2 82 AC
U+10000 a U+10FFFF411110xxx 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.

Herramientas relacionadas

Ver todas las de Codificadores, hashes y criptografía →