Saltar al contenido
Case Converter Online
es

Codificar y decodificar UTF-8

Mira exactamente qué bytes usa UTF-8 para cualquier texto, decodifica bytes para recuperar los caracteres y repara texto con caracteres extraños, como año en lugar de año. Cada carácter aparece con su punto de código.

Funciona en los dos sentidos. Elige el formato de bytes que coincide con lo que pegas a la derecha.

Carácter por carácter

CarácterPunto de códigoBytes UTF-8Bytes

Qué es UTF-8

Todo texto en un dispositivo se guarda como números. Unicode es la gran lista que asigna a cada carácter un número, llamado punto de código. La letra A es U+0041, é es U+00E9, ñ es U+00F1 y el símbolo del euro € es U+20AC. UTF-8 es la regla que convierte esos puntos de código en bytes.

UTF-8 es la codificación estándar de la web, de JSON, de la mayoría de los lenguajes de programación y de los sistemas operativos modernos. Su mejor cualidad es que el texto ASCII básico no cambia: A sigue siendo el byte 41. Los demás caracteres usan dos, tres o cuatro bytes, y cada uno de esos bytes vale 128 o más, así que nunca se confunden con ASCII.

Cómo codificar y decodificar UTF-8

Codificar. Escribe en el cuadro Texto. Los bytes UTF-8 aparecen en el cuadro Bytes UTF-8. Pulsa Copiar para llevártelos.

Decodificar. Pega bytes en el cuadro Bytes UTF-8. Los caracteres aparecen a la izquierda. Asegúrate de que el Formato de bytes coincide con lo que pegas.

Formato de bytes ofrece seis formas de escribir los bytes:

  • Bytes en hex: C3 A9 para leer y depurar
  • Escapes: \xC3\xA9 para cadenas literales en código
  • Porcentaje: %C3%A9 como en las direcciones web
  • Decimal: 195 169 para arrays de bytes
  • Binario: 11000011 10101001 para aprender cómo se colocan los bits
  • Texto roto: é (arreglar mojibake) para reparar texto que se leyó con la codificación equivocada

Carácter por carácter. La tabla bajo la herramienta muestra cada carácter con su punto de código, sus bytes UTF-8 y el número de bytes. El resumen indica el total de caracteres y de bytes. Los espacios, las tabulaciones y los saltos de línea aparecen con su nombre para que puedas verlos.

Cómo funciona UTF-8

El número de bytes depende del tamaño del punto de código:

Puntos de código Bytes Patrón de bits
U+0000 a U+007F 1 0xxxxxxx
U+0080 a U+07FF 2 110xxxxx 10xxxxxx
U+0800 a U+FFFF 3 1110xxxx 10xxxxxx 10xxxxxx
U+10000 a U+10FFFF 4 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

El primer byte indica cuántos bytes le siguen. Todos los bytes siguientes empiezan por 10. Eso hace que UTF-8 se sincronice solo: un programa siempre puede encontrar el inicio del siguiente carácter, incluso en mitad de un flujo de datos.

Todas las letras propias del español están en el rango de dos bytes. Por ejemplo, España se codifica como 45 73 70 61 C3 B1 61: seis caracteres y siete bytes. El signo ¿ es U+00BF (C2 BF) y la Ñ es U+00D1 (C3 91).

Ejemplos

Carácter Punto de código UTF-8 en hex Decimal
A U+0041 41 65
é U+00E9 C3 A9 195 169
ñ U+00F1 C3 B1 195 177
ß U+00DF C3 9F 195 159
€ U+20AC E2 82 AC 226 130 172
日 U+65E5 E6 97 A5 230 151 165
emoji de pulgar arriba U+1F44D F0 9F 91 8D 240 159 145 141

Arreglar el mojibake

El mojibake es el revoltijo de caracteres que ves cuando unos bytes UTF-8 se leen como Windows-1252 o Latin-1. Cada byte se convierte en un carácter distinto, así que las letras de dos bytes se transforman en dos símbolos raros:

Texto correcto Se ve como
café café
naïve naïve
It’s It’s
€ €

En español es un problema muy común, porque casi cada frase tiene una tilde o una ñ. Estos son resultados reales de la herramienta: año se ve como año, canción como canción, España como España y ¿Qué? como ¿Qué?. Si ves una à o una  donde debería haber una vocal con tilde, una ñ o un signo de apertura, casi seguro es mojibake.

El formato Texto roto deshace este error. Convierte cada carácter estropeado en su byte y decodifica los bytes como UTF-8. Si el texto contiene caracteres que no pueden venir de este error, la herramienta te avisa en lugar de adivinar.

Consejos y límites

  • Guarda los archivos en UTF-8. La mayor parte del mojibake empieza con un archivo guardado en una codificación y abierto en otra. En los editores, elige UTF-8 al guardar.
  • Declara la codificación. En HTML, pon <meta charset="utf-8"> al principio de la página.
  • Excel y los archivos CSV. Las versiones antiguas de Excel intentan adivinar la codificación de un CSV. Guardar como “CSV UTF-8” evita las tildes rotas.
  • El arreglo funciona una vez. Un texto que se estropeó dos veces necesita aplicar el arreglo dos veces.
  • La tabla muestra hasta 500 caracteres para que la página siga siendo rápida. El recuento de bytes siempre abarca el texto completo.

Otras formas de hacerlo

Python. 'café'.encode('utf-8') devuelve b'caf\xc3\xa9'. Para arreglar el mojibake, 'café'.encode('cp1252').decode('utf-8') devuelve café.

JavaScript. new TextEncoder().encode('é') devuelve los bytes 195 y 169. new TextDecoder().decode(bytes) los convierte de nuevo en texto.

Línea de comandos. echo -n é | xxd muestra los bytes c3a9 en un terminal UTF-8. iconv -f WINDOWS-1252 -t UTF-8 convierte archivos completos.

Herramientas relacionadas

Para decodificar bytes en hexadecimal sin más, usa el convertidor de hexadecimal a texto. Los bytes con codificación porcentual de los enlaces se decodifican con la herramienta para decodificar URL. Para ver todos los bits, prueba el traductor de código binario.

Codificador UTF-8: preguntas y respuestas

¿Cuántos bytes ocupa un carácter en UTF-8?

Entre uno y cuatro. Las letras sin tilde, los dígitos y la puntuación básica ocupan un byte. La mayoría de las letras latinas con tilde, la ñ, los signos ¿ y ¡ y los alfabetos griego, cirílico, hebreo y árabe ocupan dos. La mayoría de los caracteres chinos, japoneses y coreanos, y símbolos como el del euro, ocupan tres. Los emoji suelen ocupar cuatro.

¿Cómo arreglo un texto como año o café?

En Formato de bytes, elige Texto roto: é (arreglar mojibake) y pega el texto estropeado en el cuadro de la derecha. El texto reparado aparece a la izquierda: año pasa a ser año, café pasa a ser café e It’s pasa a ser It’s.

¿Qué diferencia hay entre Unicode y UTF-8?

Unicode asigna a cada carácter un número, llamado punto de código, como U+20AC para el símbolo del euro o U+00F1 para la ñ. UTF-8 es una forma de guardar esos números como bytes. El símbolo del euro se guarda como E2 82 AC en UTF-8, y la ñ como C3 B1.

¿Por qué mi texto tiene más bytes que caracteres?

Porque los caracteres fuera del ASCII básico necesitan varios bytes cada uno. Café €5 más un emoji de pulgar arriba son 9 caracteres pero 15 bytes. El resumen que hay encima de la tabla de caracteres muestra los dos recuentos.

Más herramientas de código y datos

Ver todas las herramientas