Tengo una cadena de JavaScript que consta de 2048 caracteres comunes. Uso el siguiente código de Node.js para encontrar su tamaño en bytes.
Buffer.from("the long string...").lengthEsto devuelve el número 2048, que resulta ser igual a la longitud de la cadena. Estoy usando la función Node.js como mi punto de referencia, por lo que veo esto como su tamaño real en bytes.
En el lado del cliente, uso Blob para determinar el tamaño de la cadena.
new Blob(["the long string..."], {type: "text/plain"}).sizeEsto debería devolver exactamente el mismo valor que el código de Node.js. Lo probé en un navegador Linux Firefox y devolvió 2048, lo cual es bueno. Lo probé en un navegador Firefox de Windows y devolvió 2046, que no es lo que esperaba.
No puedo replicar este problema de manera consistente; algunas cadenas producen el mismo resultado y otras producen resultados contradictorios. Este es un problema que debe resolverse porque la aplicación que estoy creando se basa en el navegador y el servidor para calcular el tamaño de una cadena en bytes.
¿Cómo puedo obtener consistentemente el tamaño de bytes tanto en el servidor como en el navegador?