contacara

¿Qué diferencia hay entre caracteres y bytes UTF-8?

Los caracteres describen texto; los bytes, su codificación. Un acento puede ocupar varios bytes y un emoji contener varios puntos de código. Identifica la unidad exigida antes de comprobar un límite.

Lee la unidad solicitada

Un campo de cien caracteres y uno limitado por bytes imponen condiciones diferentes. Sigue la regla editorial o la documentación técnica correspondiente. No existe un multiplicador fijo: ASCII, acentos y emoji difieren incluso en una misma cadena. «Cien bytes» no determina una cantidad única de caracteres sin conocer el contenido.

Distingue cuatro medidas

Un grafema aproxima un carácter percibido. Un punto de código es un elemento Unicode; varios pueden formar un grafema. length de JavaScript cuenta unidades UTF-16. TextEncoder produce bytes UTF-8. Nuestro contador mide principalmente grafemas tras NFC, con reglas declaradas de espacios y saltos; no reproduce todos los límites de plataformas ni tamaños de archivo.

Compara secuencias exactas

è compuesto tiene un grafema, un punto de código y dos bytes UTF-8. 🙂 tiene uno, uno y cuatro, pero longitud JavaScript dos. 👨‍👩‍👧‍👦 tiene un grafema, siete puntos y veinticinco bytes. Son resultados de esas cadenas, no límites editoriales ni reglas para cualquier emoji. Cambiar modificadores o selectores exige medir de nuevo.

Los acentos pueden cambiar por dentro

El literal italiano «Caffè» usa è compuesta o e más acento grave combinante. Ambas formas tienen cinco grafemas; la primera, cinco puntos y seis bytes; la segunda, seis y siete. No quites acentos para ahorrar: la normalización NFC/NFD puede unificar representación si está permitida, pero cambia los bytes originales.

Caffè se codifica en seis bytes UTF-8, 43 61 66 66 C3 A8: la última letra ocupa dos.
Codificación hexadecimal de Caffè en NFC, sin BOM. Bytes y caracteres visibles son medidas distintas. Abrir el JPG a tamaño completo

El archivo contiene más que prosa

PDF y DOCX incluyen imágenes, fuentes, estructura, estilos, metadatos y compresión. Un TXT puede guardar separadores y marcas iniciales. Un archivo de un megabyte no determina palabras. Comprueba el archivo final para límites de subida y el contenido extraído para límites textuales. Reducir una imagen cambia tamaño sin cambiar palabras.

Los separadores también ocupan bytes

El literal Luce blu ocupa ocho bytes con LF y nueve con CRLF. Nuestro motor devuelve siete caracteres en ambos, al excluir saltos. Revisa tabulaciones, líneas vacías y terminadores finales; un salto puede añadir bytes sin palabras. No retires formato necesario para forzar el resultado. Consulta líneas y párrafos.

Repite una medición técnica

Conserva texto final y codificación. En JavaScript, los bytes UTF-8 son la longitud del resultado de new TextEncoder().encode(testo), no de la cadena. No incluye envoltorios añadidos después. Vuelve a revisar apóstrofos, espacios no separables y emoji. La validación del destino decide aceptación, incluidas posibles reglas ponderadas.

Declara las unidades del informe

Escribe «87 palabras», «524 grafemas con espacios según este método» o «600 bytes UTF-8», no «longitud 600». En informes técnicos declara saltos y normalización. Más decimales no corrigen una unidad equivocada. Las cartelle italianas usan el tamaño acordado en caracteres; las subidas, el tamaño real del archivo.

Comprueba también el contenedor

Un valor UTF-8 válido puede superar el límite de una petición completa si cuentan nombres de campos, estructura u otros datos. Aclara si se limita valor, archivo o mensaje. No hay margen universal. Compara una entrega mínima válida con la final para aislar la restricción real.

Una cadena, varias unidades

Cadena exactaGrafemasPuntos de códigoBytes UTF-8
è (NFC)112
🙂114
👍🏽128
👨‍👩‍👧‍👦1725
Caffè (NFC)556
Resultados de estas secuencias concretas; el tamaño de un documento completo se mide aparte.

Fuentes y comprobaciones

Abrir la herramienta