2013-04-26 33 views
6

mặc dù 'binary' của Buffer không được dùng nữa, tôi phải sử dụng nó: Tôi viết một nút sử dụng ứng dụng web js + express. Người dùng có thể tải về tập tin, và tên file sẽ Cắt xén nếu không sử dụngBuffer.toString của nút js ('binary')

res.download(allpath,buf0.toString('binary')); 

xem giá trị (là một char Trung Quốc):

console.log(new Buffer('牛')); 

đầu ra: Buffer, e7,89,9b

var buf0=new Buffer('牛'); 
console.log(new Buffer(buf0.toString('binary'))); 

đầu ra: Buffer, c3, a7, c2,89, c2,9b

ý nghĩa của thuật toán này là gì và tại sao sử dụng nhị phân toString là công việc?

Trả lời

3

Thực ra, new Buffer('牛') là phím tắt cho new Buffer('牛', 'utf-8').
Vì vậy, nếu bạn muốn chuyển đổi nó trở lại thành chuỗi, bạn phải sử dụng toString('utf-8').

Ví dụ:

console.log(new Buffer('牛')); 
// Output: <Buffer e7 89 9b> 

var buf0=new Buffer('牛'); 
console.log(new Buffer(buf0.toString('utf-8'))); 
// Output: <Buffer e7 89 9b> 

Đọc thêm:

+1

Những gì tôi có nghĩa là: var buf0 = new Buffer ('牛'); Res.download (allpath, buf0.toString ('utf-8')) không bình thường (trong trình duyệt, bị cắt xén.) Và Var buf0 = new Buffer ('牛'); res.download (allpath, buf0.toString ('binary)) là bình thường. Nhưng tại sao? Thay đổi utf-8 thành nhị phân? – user1625647

+0

Bạn có thể cung cấp một loạt mã với các lỗi có ý nghĩa không? Tôi không chắc liệu tôi có hiểu vấn đề thực sự của bạn hay không. – fsenart