字串解碼器#

穩定性:2 - 穩定

原始碼: lib/string_decoder.js

node:string_decoder 模組提供一個 API,用於將 Buffer 物件解碼為字串,並保留編碼的多位元組 UTF-8 和 UTF-16 字元。可以使用以下方式存取:

const { StringDecoder } = require('node:string_decoder'); 

以下範例顯示 StringDecoder 類別的基本用法。

const { StringDecoder } = require('node:string_decoder');
const decoder = new StringDecoder('utf8');

const cent = Buffer.from([0xC2, 0xA2]);
console.log(decoder.write(cent)); // Prints: ¢

const euro = Buffer.from([0xE2, 0x82, 0xAC]);
console.log(decoder.write(euro)); // Prints: € 

Buffer 執行個體寫入 StringDecoder 執行個體時,會使用內部緩衝區來確保解碼的字串不包含任何不完整的多位元組字元。這些字元會保留在緩衝區中,直到下一次呼叫 stringDecoder.write() 或呼叫 stringDecoder.end() 為止。

在以下範例中,歐元符號 () 的三個 UTF-8 編碼位元組會透過三個不同的操作寫入

const { StringDecoder } = require('node:string_decoder');
const decoder = new StringDecoder('utf8');

decoder.write(Buffer.from([0xE2]));
decoder.write(Buffer.from([0x82]));
console.log(decoder.end(Buffer.from([0xAC]))); // Prints: € 

類別:StringDecoder#

new StringDecoder([encoding])#

  • encoding <字串> StringDecoder 將使用的字元 編碼預設: 'utf8'

建立新的 StringDecoder 執行個體。

stringDecoder.end([buffer])#

傳回儲存在內部緩衝區中的任何剩餘輸入,作為字串。代表不完整的 UTF-8 和 UTF-16 字元的位元組將會以適當於字元編碼的替代字元取代。

如果提供 buffer 參數,則在傳回剩餘輸入之前,會對 stringDecoder.write() 執行最後一次呼叫。在呼叫 end() 之後,stringDecoder 物件可以重複用於新的輸入。

stringDecoder.write(buffer)#

傳回已解碼的字串,確保 BufferTypedArrayDataView 結尾的任何不完整多位元組字元都會從傳回的字串中省略,並儲存在內部緩衝區中,以供下次呼叫 stringDecoder.write()stringDecoder.end() 使用。