2012-03-25 13 views
37

Jak uzyskać długość łańcucha w bajtach w nodejs? Jeśli mam ciąg, taki jak ten: äáöü, wtedy str.length powróci z 4. Ale jak to uzyskać, ile bajtów tworzy ciąg?Jak uzyskać długość ciągu w bajtach w nodejs?

góry dzięki

+1

Łańcuch nie ma * * długość w bajtach. To zależy od używanego kodowania. – usr

Odpowiedz

82

Oto przykład:

str = 'äáöü'; 

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

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

Buffer.byteLength(string, [encoding])

+0

Czy istnieje sposób, aby automatycznie uzyskać KB, MB, odpowiednio itp (rozmiar czytelny dla człowieka) – chovy

+3

chovy, 'npm install filesize' – SGr

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

Kciuki w dół, ale bez komentarza? Używam tej funkcji w moim własnym kodzie i jest bardzo przydatna. – Antoine

+2

To tylko kopia zaakceptowanej odpowiedzi, umieszczona w funkcji. – JohnnyHK

+0

Jest to najczystsza odpowiedź na wymienione pytanie. Zważywszy, że pytanie to zostało obejrzane ponad 11 000 razy, myślę, że jest ono wartościowe dla osób, które chcą, aby funkcja została już dla nich zbudowana, w przeciwieństwie do konieczności wycofania funkcjonalności z pierwszej odpowiedzi wymienionej powyżej. – Antoine