Node.js v21.7.2 ドキュメント
- Node.js v21.7.2
- ► 目次
-
► インデックス
- アサーションテスト
- 非同期コンテキスト追跡
- 非同期フック
- バッファ
- C++ アドオン
- Node-API を使用した C/C++ アドオン
- C++ エンベッダー API
- 子プロセス
- クラスタ
- コマンドラインオプション
- コンソール
- Corepack
- 暗号化
- デバッガ
- 非推奨 API
- 診断チャネル
- DNS
- ドメイン
- エラー
- イベント
- ファイルシステム
- グローバルオブジェクト
- HTTP
- HTTP/2
- HTTPS
- インスペクタ
- 国際化
- モジュール: CommonJS モジュール
- モジュール: ECMAScript モジュール
- モジュール: `node:module` API
- モジュール: パッケージ
- ネットワーク
- OS
- パス
- パフォーマンスフック
- パーミッション
- プロセス
- Punnycode
- クエリ文字列
- Readline
- REPL
- レポート
- 単一実行可能アプリケーション
- ストリーム
- 文字列デコーダ
- テストランナー
- タイマー
- TLS/SSL
- トレースイベント
- TTY
- UDP/データグラム
- URL
- ユーティリティ
- V8
- VM
- WASI
- Web Crypto API
- Web Streams API
- ワーカースレッド
- Zlib
- ► その他のバージョン
- ► オプション
文字列デコーダ#
ソースコード: 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])`#
- `buffer` <string> | <Buffer> | <TypedArray> | <DataView> デコードするバイト。
- 戻り値: <string>
内部バッファに格納されている残りの入力(文字列)を返します。不完全な UTF-8 および UTF-16 文字を表すバイトは、文字エンコーディングに適切な置換文字に置き換えられます。
buffer
引数が提供されている場合、残りの入力を返す前に、stringDecoder.write()
が最後に 1 回呼び出されます。end()
が呼び出された後、stringDecoder
オブジェクトは新しい入力に使用できます。
`stringDecoder.write(buffer)`#
- `buffer` <string> | <Buffer> | <TypedArray> | <DataView> デコードするバイト。
- 戻り値: <string>
デコードされた文字列を返し、`Buffer`、`TypedArray`、または `DataView` の末尾にある不完全なマルチバイト文字は、返された文字列から省略され、次の `stringDecoder.write()` または `stringDecoder.end()` の呼び出しのために内部バッファに格納されます。