nodejs 的基礎模塊 Buffer

Buffer 文檔

  • Buffer 用于處理二進制數(shù)據(jù)流
  • 實例類似證書數(shù)組,大小固定
  • C++ 代碼在 V8 堆外分配物理內(nèi)存

例子

// 創(chuàng)建一個長度為 10、且用 0 填充的 Buffer。
const buf1 = Buffer.alloc(10);

// 創(chuàng)建一個長度為 10、且用 0x1 填充的 Buffer。 
const buf2 = Buffer.alloc(10, 1);

// 創(chuàng)建一個長度為 10、且未初始化的 Buffer。
// 這個方法比調(diào)用 Buffer.alloc() 更快,
// 但返回的 Buffer 實例可能包含舊數(shù)據(jù),
// 因此需要使用 fill() 或 write() 重寫。
const buf3 = Buffer.allocUnsafe(10);

// 創(chuàng)建一個包含 [0x1, 0x2, 0x3] 的 Buffer。
const buf4 = Buffer.from([1, 2, 3]);

// 創(chuàng)建一個包含 UTF-8 字節(jié) [0x74, 0xc3, 0xa9, 0x73, 0x74] 的 Buffer。
const buf5 = Buffer.from('tést');

// 創(chuàng)建一個包含 Latin-1 字節(jié) [0x74, 0xe9, 0x73, 0x74] 的 Buffer。
const buf6 = Buffer.from('tést', 'latin1');

Buffer 類的方法

Buffer.alloc

image

Buffer.from

image

image

Buffer.concat

image

buf 實例的方法

buf.length

返回 buf 實例的字節(jié)長度

英文字符,一個字母占一個字節(jié)

image

中文字符,一個中文字符占3個字節(jié)

image

buf.fill

填充 buf 實例。

image

buf.indexOf

搜索位置,返回找到第一個索引值,類似于數(shù)組的 indexOf

image

Buffer 處理中文亂碼問題

例子

image
const {StringDecoder} = require('string_decoder');

console.log(StringDecoder);

let decoder = new StringDecoder('utf8');

let buf = Buffer.from('中文字符串');

console.log('\n中文亂碼問題: \n');

for (let i = 0; i < buf.length; i += 5) {
  let b = Buffer.alloc(5);
  buf.copy(b, 0, i);
  console.log(b.toString());
}   //打印出來亂碼

console.log('\n 用 StringDecoder 解決: \n');

for (let i = 0; i < buf.length; i += 5) {
  let b = Buffer.alloc(5);
  buf.copy(b, 0, i);
  console.log(decoder.write(b));
}   //打印出正常的中文字符
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測試 ...
    KeKeMars閱讀 6,603評論 0 6
  • Buffer是node的核心模塊,開發(fā)者可以利用它來處理二進制數(shù)據(jù),比如文件流的讀寫、網(wǎng)絡請求數(shù)據(jù)的處理等。 Bu...
    自度君閱讀 571評論 0 1
  • Node.js Buffer(緩沖區(qū)) JavaScript 語言自身只有字符串數(shù)據(jù)類型,沒有二進制數(shù)據(jù)類型。但在...
    FTOLsXD閱讀 616評論 0 2
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,677評論 0 4
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,328評論 0 17

友情鏈接更多精彩內(nèi)容