Blog
Español

Conversor Unicode — puntos de código y bytes UTF-8

Pasa texto a puntos de código Unicode, escapes y bytes UTF-8, y viceversa

Funciona en tu navegador · no se sube nada

8 caracteres visibles · 8 puntos de código · longitud UTF-16 9

Resultados

Puntos de código (U+XXXX)

U+0043 U+0061 U+0066 U+00E9 U+0020 U+1F600 U+0020 U+D55C

JavaScript / JSON (\uXXXX)

Caf\u00E9 \uD83D\uDE00 \uD55C

ES6 (\u{...})

Caf\u{E9} \u{1F600} \u{D55C}

HTML hexadecimal (&#x...;)

Café 😀 한

HTML decimal (&#...;)

Café 😀 한

Bytes UTF-8 (hex)

43 61 66 C3 A9 20 F0 9F 98 80 20 ED 95 9C

Bytes UTF-16BE (hex)

00 43 00 61 00 66 00 E9 00 20 D8 3D DE 00 00 20 D5 5C

Bytes por codificación

UTF-8
14 bytes
UTF-16
18 bytes
EUC-KR (CP949)
7 bytes
2 caracteres no se pueden escribir en EUC-KR (no se cuentan)

EUC-KR (CP949) es la codificación coreana heredada: las 2.350 sílabas hangul de KS X 1001 y las otras 8.822 sílabas modernas de la extensión CP949 (UHC) ocupan 2 bytes cada una. En UTF-8 una sílaba hangul ocupa 3 bytes y un emoji 4.

Tabla de caracteres

Car.Punto de códigoUTF-8UTF-16DecimalCar. visible
CU+0043430043671
aU+0061610061972
fU+00666600661023
éU+00E9C3 A900E92334
(invisible)U+0020200020325
😀U+1F600F0 9F 98 80D83D DE001285126
(invisible)U+0020200020327
한U+D55CED 95 9CD55C546208

Qué es

Escribe un texto y obtienes de una vez todas las notaciones habituales, cada una con su botón de copiar: puntos de código Unicode, escapes de JavaScript y JSON, la forma ES6, referencias HTML hexadecimales y decimales, y los bytes en bruto UTF-8 y UTF-16BE. Sirve para meter texto no ASCII en código fuente sin riesgos, leer las secuencias \uXXXX de un registro o averiguar por qué un texto salió con caracteres raros («Ã±» en vez de «ñ»).

También compara el número de bytes en UTF-8, UTF-16 y la antigua codificación coreana EUC-KR (CP949), y lista cada punto de código en una tabla. La dirección inversa convierte escapes o bytes hexadecimales en texto. Todo funciona en tu navegador y no se guarda nada.

Cómo se usa

  1. Elige la dirección: Texto → código o Código → texto.
  2. Para Texto → código, escribe en el cuadro de texto. El ejemplo «Café 😀 한» ya está puesto, así que los resultados aparecen enseguida.
  3. Desmarca «Dejar el ASCII tal cual» para escapar todos los caracteres, no solo los no ASCII.
  4. Copia el formato que necesites. La comparación de bytes y la tabla de caracteres están debajo.
  5. Para Código → texto, deja la detección automática para escapes y valores U+, incluso mezclados, o elige un formato de bytes hexadecimales para listas de bytes.
  6. Copia el texto descodificado con su botón.

Cómo funciona

  • Puntos de código: U+ seguido de hexadecimal en mayúsculas, con al menos cuatro dígitos (U+0041), separados por espacios.
  • JavaScript / JSON: un \uXXXX por unidad de código UTF-16, así que todo lo que va de U+10000 en adelante se vuelve un par sustituto. La forma ES6 escribe un \u{...} por punto de código.
  • HTML: una referencia &#x…; o &#…; por punto de código.
  • Dejar el ASCII tal cual mantiene sin cambios el ASCII imprimible (U+0020 a U+007E), salvo la barra invertida (JavaScript) y & < > “ ’ (HTML), para que el resultado se descodifique sin ambigüedad. Los saltos de línea y tabulaciones siempre se escapan.
  • UTF-8: bytes generados por el TextEncoder del navegador. UTF-16: dos bytes por unidad de código, el más significativo primero (big-endian).
  • EUC-KR (CP949): se construye una tabla inversa descodificando cada par de bytes (primer byte 0x81 a 0xFE, segundo 0x41 a 0xFE) con el descodificador EUC-KR del navegador; el ASCII ocupa un byte. Las 11 172 sílabas de 가 a 힣 ocupan dos bytes: 2350 de KS X 1001 y 8822 de la extensión CP949 (UHC), que se completa con la disposición de CP949 si un descodificador solo conoce KS X 1001.
  • Caracteres visibles: grupos de grafemas calculados con Intl.Segmenter del navegador (anexo n.º 29 del estándar Unicode). La tabla tiene una fila por punto de código, marca los caracteres formados por varios puntos de código y muestra los 200 primeros.
  • Descodificación: los valores U+ llevan de 4 a 8 dígitos hexadecimales, y los espacios o comas entre ellos sirven de separadores. Los valores por encima de U+10FFFF y los sustitutos sueltos se indican con su posición. En bytes se ignoran espacios, comas, dos puntos, guiones y los prefijos 0x, \x o %, y un UTF-8 no válido se indica con la posición del byte.
  • La entrada está limitada a 20 000 caracteres.

Ejemplos

Texto Punto de código JavaScript Bytes UTF-8 UTF-8 / UTF-16 / EUC-KR
A U+0041 A (o A sin «Dejar el ASCII tal cual») 41 1 / 2 / 1 bytes
é U+00E9 é C3 A9 2 / 2 / no codificable
中 U+4E2D 中 E4 B8 AD 3 / 2 / 2 bytes
한 U+D55C 한 ED 95 9C 3 / 2 / 2 bytes
😀 U+1F600 😀 F0 9F 98 80 4 / 4 / no codificable

El ejemplo por defecto «Café 😀 한» tiene 8 caracteres visibles, 8 puntos de código y una longitud UTF-16 de 9. Ocupa 14 bytes en UTF-8, 18 en UTF-16 y 7 en EUC-KR, donde la é y el emoji no se pueden representar.

En sentido inverso, la detección automática convierte Café &#x1F600; U+D55C en «Café 😀 한», y los bytes UTF-8 43 61 66 C3 A9 se descodifican como «Café».

Preguntas frecuentes

¿Qué diferencia hay entre punto de código y codificación?

El punto de código es el número que Unicode asigna a un carácter, como U+00F1 para ñ. La codificación es cómo se guarda ese número en bytes. La misma ñ es C3 B1 en UTF-8 y 00 F1 en UTF-16, y la sílaba coreana 한 (U+D55C) es ED 95 9C en UTF-8 pero C7 D1 en la antigua codificación coreana EUC-KR.

¿Por qué un emoji se convierte en dos escapes \uXXXX?

Las cadenas de JavaScript y JSON son secuencias de unidades de código UTF-16. Los caracteres por encima de U+FFFF necesitan dos unidades, llamadas par sustituto, así que 😀 (U+1F600) se escribe 😀. La forma ES6 \u{1F600} nombra directamente el punto de código y solo necesita un escape.

¿Por qué un solo emoji cuenta como varios puntos de código?

Muchos emoji son secuencias. El emoji de familia son tres emoji de personas unidos por dos ZWJ (U+200D): un solo carácter visible, pero cinco puntos de código, ocho unidades UTF-16 y 18 bytes UTF-8. Los tonos de piel, las banderas y las letras con tilde descompuestas (n + tilde combinable) funcionan igual, por eso el resumen muestra los tres recuentos.

¿Qué significa «no se puede escribir en EUC-KR»?

EUC-KR (CP949) es una codificación coreana antigua que cubre hangul, hanja y una serie de símbolos, pero no emoji ni letras como ñ o é. Esos caracteres quedan fuera del total de bytes EUC-KR y se cuentan aparte. Si tu navegador no tiene descodificador EUC-KR, la cifra se oculta.

¿Se envía mi texto a algún sitio?

No. Todas las conversiones se hacen en tu navegador y no se guarda ni se envía nada de lo que escribes.

¿Echas en falta alguna herramienta?