2012-03-25 35 views
37

Làm thế nào để có được độ dài chuỗi theo byte trong nútj? Nếu tôi có một chuỗi, như thế này: äáöü sau đó str.length sẽ trở lại với 4. Nhưng làm thế nào để có được điều đó, bao nhiêu byte hình thành chuỗi?Làm thế nào để có được độ dài chuỗi theo byte trong nútjs?

Cảm ơn trước

+1

Một chuỗi không * có * chiều dài tính bằng byte. Điều này phụ thuộc vào mã hóa được sử dụng. – usr

Trả lời

82

Dưới đây là một ví dụ:

str = 'äáöü'; 

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

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

Buffer.byteLength(string, [encoding])

+0

Có cách nào để tự động nhận KB, MB, nếu thích hợp vv (kích thước có thể đọc được của con người) – chovy

+3

chovy, 'npm install filesize' – SGr

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

Không thích nhận xét? Tôi đang sử dụng chức năng này trong mã của riêng tôi và nó rất hữu ích. – Antoine

+2

Đây chỉ là một bản sao của câu trả lời được chấp nhận, đưa vào một chức năng. – JohnnyHK

+0

Đây là câu trả lời rõ ràng nhất cho câu hỏi được liệt kê. Xem xét câu hỏi này đã được xem hơn 11.000 lần, tôi nghĩ rằng nó cung cấp giá trị cho những người muốn các chức năng được xây dựng cho họ đã như trái ngược với việc phải kéo chức năng ra khỏi câu trả lời đầu tiên được liệt kê ở trên. – Antoine

Các vấn đề liên quan