Saltar al contenido
TextArray
Totalmente local

Contador de bytes UTF-8

Mida el tamaño real del texto en bytes UTF-8, unidades UTF-16, puntos de código y grafemas.

Entrada

Contador de bytes UTF-8

El número de caracteres y el tamaño de bytes no son lo mismo. En UTF-8, las letras en inglés simple ocupan un byte cada una, pero "é" ocupa dos, la mayoría de los caracteres CJK ocupan tres y un emoji como 👋 ocupa cuatro, por lo que un mensaje de 160 caracteres puede tener fácilmente más de 160 bytes. Pegue cualquier texto y este contador informará su tamaño exacto de bytes UTF-8, las unidades de código UTF-16 que informaría la longitud de JavaScript, la cantidad de puntos de código Unicode, el recuento de grafemas (caracteres percibidos por el usuario, por lo que una familia 👨‍👩‍👧 cuenta como una) y la cantidad de líneas, más el tamaño almacenado en B, KB o MB para ambas codificaciones.

Ese desglose responde rápidamente a preguntas prácticas: ¿esta cadena se ajustará a una columna VARCHAR(255) medida en bytes, un segmento de SMS, un límite de carga útil de 64 KB, un presupuesto de encabezado HTTP, una cuota de almacenamiento local? ¿Por qué una base de datos se queja de una cadena de "160 caracteres" y por qué un emoji cuenta como dos caracteres en un sistema y uno en otro? El contador muestra todas las definiciones competitivas de "longitud" una al lado de la otra para que pueda ver exactamente cuál utiliza su límite.

Los finales de línea también influyen en el tamaño de los bytes: un archivo guardado con terminaciones CRLF de Windows es un byte por línea más grande que el mismo archivo con terminaciones LF de Unix. La opción de finales de línea le permite medir el texto tal como se pegó o como se convertiría una vez a LF o CRLF.

Todo se calcula localmente en su navegador utilizando la API TextEncoder estándar: el texto que pega nunca se carga, por lo que es seguro medir los archivos de configuración, tokens y mensajes privados.

Preguntas frecuentes

¿Por qué el recuento de bytes es mayor que el recuento de caracteres?
UTF-8 es una codificación de ancho variable: las letras ASCII ocupan 1 byte, las letras latinas acentuadas 2, la mayoría de los caracteres CJK 3 y los emoji 4. Por lo tanto, cualquier texto que no sea ASCII tiene más bytes que caracteres.
¿Cuál es la diferencia entre puntos de código y grafemas?
Un punto de código es un valor Unicode único; un grafema es lo que un lector ve como un personaje. Los emoji creados a partir de varios puntos de código unidos por ZWJ, o letras con acentos combinados, son múltiples puntos de código pero un grafema.
¿Qué número utiliza el límite de columnas de una base de datos?
Depende de la base de datos y la definición de la columna: los límites de MySQL utf8mb4 VARCHAR cuentan caracteres, mientras que muchos límites basados en bytes (claves de Redis, tamaños de índice, algunas API) cuentan bytes UTF-8. Esta herramienta muestra ambos para que pueda compararlos con el correcto.
¿Cómo cambian el tamaño los finales de línea?
Las terminaciones CRLF de Windows son de dos bytes por salto de línea, las terminaciones LF de Unix son de uno. Cambie la opción de finales de línea para ver el tamaño del texto tal como se guardaría con cualquiera de las convenciones.
¿Mi texto está subido a alguna parte?
No. El conteo se ejecuta completamente en su navegador con la API TextEncoder incorporada y su texto nunca sale de su dispositivo.