文字列デコーダ#

安定性: 2 - 安定

ソースコード: lib/string_decoder.js

node:string_decoder モジュールは、エンコードされたマルチバイト UTF-8 および UTF-16 文字を保持する方法で、Buffer オブジェクトを文字列にデコードするための API を提供します。これは次のようにアクセスできます。

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() が呼び出されるまで、バッファに保持されます。

次の例では、ユーロ記号 () の 3 つの UTF-8 エンコードバイトが 3 つの別々の操作で書き込まれています。

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])`#

新しい StringDecoder インスタンスを作成します。

`stringDecoder.end([buffer])`#

内部バッファに格納されている残りの入力(文字列)を返します。不完全な UTF-8 および UTF-16 文字を表すバイトは、文字エンコーディングに適切な置換文字に置き換えられます。

buffer 引数が提供されている場合、残りの入力を返す前に、stringDecoder.write() が最後に 1 回呼び出されます。end() が呼び出された後、stringDecoder オブジェクトは新しい入力に使用できます。

`stringDecoder.write(buffer)`#

デコードされた文字列を返し、`Buffer`、`TypedArray`、または `DataView` の末尾にある不完全なマルチバイト文字は、返された文字列から省略され、次の `stringDecoder.write()` または `stringDecoder.end()` の呼び出しのために内部バッファに格納されます。