¿Qué es esta herramienta?
Para texto ASCII plano (letras en inglés, dígitos, puntuación básica), el recuento de caracteres y el de bytes son el mismo número: cada carácter ocupa exactamente un byte en UTF-8. En cuanto el texto incluye letras acentuadas, caracteres chinos/japoneses/coreanos, cirílico, árabe, emojis, o la mayoría de otros caracteres no ASCII, eso deja de ser cierto: un solo carácter puede ocupar 2, 3 o 4 bytes en UTF-8, y 2 o 4 bytes en UTF-16.
Esto importa siempre que un sistema tenga un límite en bytes en lugar de en caracteres: los mensajes SMS, el tamaño de columnas de bases de datos, los límites de carga útil de API y algunas plataformas sociales miden en bytes, no en caracteres, así que el mismo texto puede superar silenciosamente un límite según el idioma o los símbolos que contenga.
¿Por qué utilizarlo?
- Un campo de biografía estilo Twitter/X te limita por bytes, no por caracteres, y tu nombre tiene un emoji — escríbelo aquí para ver el costo real en bytes antes de que el formulario lo recorte en silencio.
- La columna de tu base de datos está definida como VARCHAR(255) en bytes por dentro, y un título de producto en japonés o árabe que "se ve corto" sigue siendo rechazado — pégalo aquí para ver por qué en realidad usa el triple de bytes que un título en alfabeto latino.
- Estás calculando cuántos segmentos de SMS va a usar un mensaje de marketing multilingüe — como las operadoras cobran y dividen por tamaño en bytes, revisar el recuento UTF-8/UTF-16 aquí evita adivinar y recibir una factura más alta de lo esperado.
- Una API devuelve un críptico error de "payload demasiado grande" en un campo JSON con un validador estricto de longitud en bytes, y la cadena se veía bien en tu editor — esto te muestra exactamente cuántos bytes cuesta esa cadena en realidad.
- Estás comparando por qué la misma frase ocupa más almacenamiento en un idioma que en otro — escribe cada versión y observa cómo el conteo de bytes UTF-8 sube para texto en chino o árabe frente a la versión en ASCII puro.
- Necesitas comprobar si un emoji en un nombre de usuario está siendo contado como uno o dos caracteres por una regla de validación quisquillosa — esta herramienta lo cuenta como lo vería una persona, así puedes saber si el otro sistema lo está haciendo mal.
Cómo utilizarlo
- Escribe o pega texto en el cuadro.
- Lee el recuento de caracteres, el recuento de bytes UTF-8 y el recuento de bytes UTF-16 debajo: se actualizan mientras escribes.
Ejemplo
Entrada
Hello, 世界! 🌍Resultado
12 caracteres, 19 bytes UTF-8, 26 bytes UTF-16La parte ASCII («Hello, » y «! ») ocupa 1 byte por carácter en UTF-8. Cada carácter chino ocupa 3 bytes, y el emoji ocupa 4 bytes, por eso los recuentos en bytes son notablemente más altos que el recuento de caracteres.
Usos habituales
- Comprobar si una descripción de producto multilingüe cabrá en una columna de base de datos definida por longitud en bytes en lugar de recuento de caracteres.
- Estimar el uso de segmentos SMS, ya que los SMS se facturan y dividen por tamaño en bytes, y el texto no latino usa un límite por segmento diferente.
- Verificar que una carga útil de API o un campo de formulario se mantiene por debajo de un límite de tamaño basado en bytes antes de enviarlo.
- Entender por qué una cadena que «parece corta» está siendo rechazada por un sistema con una comprobación de longitud basada en bytes.
Tamaño en bytes UTF-8 según el tipo de carácter
La tabla siguiente muestra el costo típico en bytes UTF-8 por categoría de carácter — útil para estimar cuánto pesará realmente un texto multilingüe antes de pegarlo entero.
| Tipo de carácter | Ejemplo | Bytes UTF-8 | Bytes UTF-16 |
|---|---|---|---|
| Letra/dígito ASCII | A, 7 | 1 | 2 |
| Latín acentuado (é, ñ, ü) | é | 2 | 2 |
| Cirílico / griego / hebreo / árabe | д, α, א | 2 | 2 |
| CJK (chino, japonés, coreano) | 世 | 3 | 2 |
| La mayoría de emojis (fuera del BMP) | 🌍 | 4 | 4 |
Preguntas frecuentes
¿Por qué no coinciden el recuento de caracteres y el de bytes?
El texto Unicode se almacena como bytes, y cuántos bytes necesita cada carácter depende de la codificación y del carácter en sí. En UTF-8, los caracteres ASCII ocupan 1 byte, la mayoría de las letras latinas acentuadas y las letras cirílicas/griegas/hebreas/árabes ocupan 2 bytes, la mayoría de los caracteres CJK ocupan 3 bytes, y los emojis suelen ocupar 4 bytes. El recuento de caracteres simplemente cuenta símbolos, sin importar cómo se almacenan.
¿Qué recuento de bytes debo usar para un campo con límite en bytes?
Usa la codificación que el sistema realmente utiliza para almacenar o transmitir el texto: la mayoría de las API web modernas, bases de datos y archivos usan UTF-8, así que el recuento en bytes UTF-8 suele ser el relevante. Algunos sistemas más antiguos (como el manejo interno de cadenas en Windows/Java) usan UTF-16.
¿Esto cuenta los emojis correctamente?
Sí. Muchos emojis se almacenan internamente como un par de unidades de código «sustitutas» de UTF-16, que los métodos de conteo ingenuos cuentan como 2 caracteres. Esta herramienta cuenta correctamente los puntos de código Unicode, así que un emoji se cuenta como 1 carácter, coincidiendo con cuántos caracteres ve realmente una persona.
¿Es esto lo mismo que la herramienta Contador de palabras?
No: el Contador de palabras se centra en el recuento de palabras y frases para la escritura. Esta herramienta trata específicamente del tamaño en bytes frente al recuento de caracteres, que importa para límites técnicos en lugar de requisitos de recuento de palabras.
¿Se sube mi texto a algún sitio?
No. El conteo ocurre localmente en tu navegador usando el codificador de texto integrado de JavaScript; no se envía nada a un servidor.
¿Por qué el mismo carácter ocupa una cantidad distinta de bytes en UTF-8 frente a UTF-16?
Las dos codificaciones usan reglas completamente distintas para asignar puntos de código a bytes. UTF-8 usa de 1 a 4 bytes según el carácter, optimizado para que el ASCII siga ocupando 1 byte. UTF-16 usa 2 bytes para la mayoría de los caracteres y solo 4 bytes para los que están fuera del Plano Multilingüe Básico (como la mayoría de los emojis) — así que un carácter chino ocupa 3 bytes en UTF-8 pero solo 2 en UTF-16, mientras que un emoji ocupa 4 bytes en ambos.
¿Un emoji con tono de piel o de familia (formado por varios caracteres unidos) se cuenta correctamente?
La herramienta cuenta puntos de código Unicode, así que un emoji compuesto por varios puntos de código unidos con un unión de ancho cero (como un emoji de familia) se cuenta como varios caracteres, no como uno — reflejando cómo está codificado realmente el texto, aunque se muestre como un solo símbolo.
¿Cuál es la diferencia entre el conteo de bytes UTF-8 y el de caracteres para texto en español sin acentos?
Para texto que use solo letras ASCII, dígitos, espacios y puntuación básica, son idénticos — cada carácter ocupa exactamente 1 byte en UTF-8. La diferencia aparece en cuanto se agregan letras acentuadas (á, é, í, ó, ú, ñ), símbolos o escrituras no latinas.
¿Puedo usar esto para comprobar exactamente los límites de caracteres de Twitter/X o SMS?
Esta herramienta te da el recuento crudo de caracteres y bytes, que es la base sobre la que se construyen esos límites, pero las plataformas a veces aplican sus propias reglas de ponderación (por ejemplo, algunas cuentan ciertos emojis o URLs como un número fijo de caracteres sin importar su longitud real) — revisa las reglas específicas de la plataforma para casos límite, y usa esta herramienta para entender el costo en bytes subyacente.