2012-03-25 18 views
37

¿Cómo obtener la longitud de cadena en bytes en nodejs? Si tengo una cadena, como esta: äáöü entonces str.length regresará con 4. Pero cómo obtener eso, ¿cuántos bytes forman la cadena?¿Cómo obtener la longitud de cadena en bytes en nodejs?

Gracias de antemano

+1

Una cadena no significa * * tienen una longitud en bytes. Esto depende de la codificación utilizada. – usr

Respuesta

82

He aquí un ejemplo:

str = 'äáöü'; 

console.log(str + ": " + str.length + " characters, " + 
    Buffer.byteLength(str, 'utf8') + " bytes"); 

// äáöü: 4 characters, 8 bytes 

Buffer.byteLength(string, [encoding])

+0

¿Hay alguna manera de obtener automáticamente KB, MB, según corresponda, etc. (tamaño legible para humanos) – chovy

+3

chovy, 'npm install filesize' – SGr

2
function getBytes(string){ 
    return Buffer.byteLength(string, 'utf8') 
} 
+0

Pulgares abajo pero sin comentarios? Estoy usando esta función en mi propio código y es muy útil. – Antoine

+2

Esto es solo una copia de la respuesta aceptada, puesto en una función. – JohnnyHK

+0

Es la respuesta más pura a la pregunta enumerada. Teniendo en cuenta que esta pregunta se ha visto más de 11,000 veces, creo que ofrece valor a las personas que quieren que la función esté desarrollada para ellos, en lugar de tener que sacar la funcionalidad de la primera respuesta enumerada anteriormente. – Antoine

Cuestiones relacionadas