Inspector de caracteres Unicode
Ve puntos de código, bytes UTF-8/UTF-16 y escapes de cada carácter
Sobre esta herramienta
Pega cualquier texto y mira cada carácter diseccionado: su punto de código (U+XXXX), bytes UTF-8, unidades UTF-16, secuencia de escape de JavaScript, entidad HTML y categoría general — más totales de puntos de código, unidades UTF-16, bytes UTF-8 y caracteres percibidos por el usuario (clústeres de grafemas).
Esta es la herramienta para los momentos de "¿por qué esta cadena es rara?": los caracteres invisibles (espacios de ancho cero, BOMs, marcas direccionales) aparecen como filas visibles; los caracteres parecidos (la а cirílica frente a la a latina) revelan puntos de código distintos; y un emoji que "es un carácter" resulta ser siete puntos de código unidos por zero-width joiners.
Los cuatro totales de longitud distintos responden a la eterna pregunta de por qué el .length de JavaScript, un límite de bytes de base de datos y lo que el usuario ve no se ponen de acuerdo sobre cuán larga es una cadena.
Preguntas frecuentes
- ¿Por qué "🎉".length === 2 en JavaScript?
- Las cadenas de JavaScript cuentan unidades de código UTF-16. Los caracteres más allá de U+FFFF — incluida la mayoría de emoji — necesitan un par sustituto, dos unidades. El inspector muestra ambas unidades y el punto de código real, y el resumen los cuenta por separado.
- ¿Qué es un clúster de grafemas?
- Lo que un lector percibe como un solo carácter. é puede ser dos puntos de código (e + acento combinante), y los emoji de familia pueden ser siete o más unidos por zero-width joiners. El recuento de grafemas usa el Intl.Segmenter del navegador — lo más cercano a "caracteres como los ve el usuario".
- ¿Cómo encuentro caracteres invisibles en una cadena?
- Pégala aquí — cada punto de código recibe una fila, incluidos los espacios de ancho cero (U+200B), los espacios de no separación (U+00A0), los BOMs (U+FEFF) y las marcas direccionales, cada uno etiquetado por categoría. Son los clásicos culpables detrás de cadenas "idénticas" que fallan las comprobaciones de igualdad.
- ¿Qué me dicen las secuencias de bytes UTF-8?
- Exactamente lo que se almacenará o transmitirá: ASCII es un byte, la mayoría de extensiones latinas dos, CJK tres, emoji cuatro. Si un sistema trunca a media secuencia obtienes caracteres de reemplazo (�) — la vista de bytes muestra dónde caerían esos cortes.