Oh MyUtils

Contador de Bytes - Calculadora de Tamaño de Cadenas en Línea

Calcula el tamaño en bytes de cadenas en codificaciones UTF-8, UTF-16, ASCII, ISO-8859-1 y Base64. Compara con límites comunes — 100% del lado del cliente, sin envío de datos al servidor.

Entrada
Caracteres
0
UTF-8
0 bytes
UTF-16
0 bytes
ASCII
0 bytes
ISO-8859-1
0 bytes
Codificado Base64
0 bytes

Preguntas Frecuentes

¿Qué es un contador de bytes?

Un contador de bytes calcula el número exacto de bytes que ocupa una cadena en varias codificaciones de caracteres (UTF-8, UTF-16, ASCII). A diferencia del conteo de caracteres, el conteo de bytes refleja el tamaño real de memoria o almacenamiento de los datos de texto.

¿Por qué el conteo de bytes es diferente al conteo de caracteres?

En codificaciones multibyte como UTF-8, los caracteres más allá de ASCII requieren 2-4 bytes. Por ejemplo, un carácter chino ocupa 3 bytes en UTF-8 pero cuenta como 1 carácter. Los emoji pueden ocupar 4 o más bytes. Esto importa para límites de almacenamiento, cargas de API y columnas de base de datos.

¿Son seguros mis datos? ¿Salen de mi navegador?

Todos los cálculos se realizan 100% del lado del cliente usando la API TextEncoder integrada del navegador. Su texto nunca sale de su navegador y nunca se envía a ningún servidor.

¿Cuál es la diferencia entre UTF-8 y UTF-16?

UTF-8 usa 1-4 bytes por carácter (eficiente para texto con predominancia ASCII). UTF-16 usa 2 o 4 bytes por carácter (codificación interna de JavaScript). Para texto en inglés, UTF-8 es más pequeño. Para texto CJK, son similares. UTF-16 es relevante al trabajar con cadenas internas de JavaScript, APIs de Windows o longitudes de cadenas en Java/C#.

¿Cómo se calcula el tamaño codificado en Base64?

La codificación Base64 convierte cada 3 bytes de entrada en 4 caracteres ASCII. La fórmula es ceil(byteLength / 3) * 4. Esto resulta en aproximadamente un 33% de sobrecarga de tamaño, lo cual es importante al incluir datos en URLs, cargas JSON o URIs de datos.

¿Cuáles son los límites de tamaño comunes que encuentran los desarrolladores?

Límites comunes incluyen: cookies HTTP (4 KB), longitud de URL (2,048 caracteres), encabezados HTTP (8 KB), localStorage (5 MB por origen), mensajes SMS (160 caracteres GSM-7 / 70 caracteres Unicode) y columnas VARCHAR de base de datos (varía según el motor de BD).

Ejemplos de Código

// UTF-8 byte size using TextEncoder
function getUtf8ByteSize(str) {
  return new TextEncoder().encode(str).byteLength;
}

// UTF-16 byte size (JavaScript internal encoding)
function getUtf16ByteSize(str) {
  return str.length * 2; // Each code unit = 2 bytes
}

// Base64 encoded size from UTF-8
function getBase64Size(str) {
  const utf8Len = new TextEncoder().encode(str).byteLength;
  return Math.ceil(utf8Len / 3) * 4;
}

// Usage
const text = 'Hello, World! 안녕하세요 🌍';
console.log('Characters:', [...text].length);     // 19
console.log('UTF-8 bytes:', getUtf8ByteSize(text)); // 33
console.log('UTF-16 bytes:', getUtf16ByteSize(text)); // 40
console.log('Base64 size:', getBase64Size(text));   // 44

Herramientas relacionadas