Acerca de esta herramienta
El contador se centra en la codificación. Muestra por separado puntos de código Unicode, grafemas visibles, unidades de código UTF-16 y bytes UTF-8, para evitar confundir string.length de JavaScript con un recuento universal de caracteres.
Cómo usarla
- Introduce texto, emojis o caracteres con acentos combinados.
- Consulta puntos de código, caracteres sin espacios en blanco y bytes UTF-8.
- Compara grafemas visibles y unidades UTF-16. Se indica si el navegador no admite la segmentación de grafemas.
- Copia el original o carga el ejemplo para comprobar las diferencias de representación.
Ejemplos de uso
- 😀: 1 punto de código Unicode, 2 unidades de código UTF-16 y 4 bytes UTF-8.
- 👨👩👧👦: 7 puntos de código Unicode y 1 grafema visible si se admite la segmentación grapheme.
- La e con acento combinado y la é precompuesta suelen verse igual, pero la primera tiene 2 puntos de código y la segunda, 1.
Reglas de recuento
Los caracteres y puntos de código se cuentan recorriendo el texto como con Array.from. Las unidades UTF-16 corresponden a la longitud original de la cadena y los bytes UTF-8 se calculan con TextEncoder. Los grafemas utilizan preferentemente el modo grapheme de Intl.Segmenter. No se aplica normalización Unicode, por lo que se conservan las distintas codificaciones de caracteres combinados. Los saltos originales cuentan en la codificación; un salto final produce una línea vacía final. El límite por entrada es de 2.000.000 de unidades de código UTF-16.
Usos habituales
- Comprobar el tamaño UTF-8 de campos, archivos o datos de una API.
- Investigar diferencias de longitud causadas por emojis.
- Entender la relación entre formas visibles, puntos de código y unidades de codificación.
Privacidad
El texto, la lectura de archivos, las conversiones y las vistas previas se procesan localmente en el navegador. No se sube la entrada ni se utilizan servidores de procesamiento, bases de datos, API en línea ni CDN de terceros. El contenido no se guarda automáticamente. La copia y las descargas también son locales.
FAQ
¿Cuántos caracteres cuenta un emoji?
Un emoji simple puede tener un punto de código, mientras que familias, banderas o combinaciones de tonos de piel pueden tener varios. Los grafemas se aproximan más al número de caracteres que ve una persona.
¿Por qué UTF-16 puede superar el número de caracteres?
Los puntos de código fuera del plano multilingüe básico usan un par de sustitutos UTF-16. Por eso un punto de código puede ocupar dos unidades.
¿Los bytes UTF-8 equivalen al tamaño del archivo?
Indican los bytes del texto actual codificado en UTF-8, sin cabeceras adicionales, BOM ni metadatos del sistema de archivos.
¿Se cuentan los espacios?
El recuento normal incluye espacios en blanco. El recuento sin espacios en blanco excluye espacios, tabulaciones, saltos de línea y otros espacios Unicode.
¿Qué ocurre sin Intl.Segmenter?
Los puntos de código, UTF-16 y UTF-8 siguen disponibles. El área de grafemas indica que no se puede ofrecer un recuento fiable.