Node.js v25.0.0 ドキュメンテーション
- Node.js v25.0.0
- 目次
-
索引
- アサーションテスト
- 非同期コンテキストの追跡
- Async hooks
- Buffer
- C++アドオン
- Node-API を使用した C/C++ アドオン
- C++ embedder API
- 子プロセス
- Cluster
- コマンドラインオプション
- Console
- Crypto
- Debugger
- 非推奨のAPI
- Diagnostics Channel
- DNS
- Domain
- 環境変数
- エラー
- Events
- ファイルシステム
- Globals
- HTTP
- HTTP/2
- HTTPS
- Inspector
- 国際化
- モジュール: CommonJS モジュール
- モジュール: ECMAScript モジュール
- モジュール:
node:moduleAPI - モジュール: パッケージ
- モジュール: TypeScript
- Net
- OS
- Path
- Performance hooks
- パーミッション
- Process
- Punycode
- クエリストリング
- Readline
- REPL
- レポート
- 単一実行可能ファイルアプリケーション
- SQLite
- Stream
- String decoder
- テストランナー
- タイマー
- TLS/SSL
- トレースイベント
- TTY
- UDP/datagram
- URL
- ユーティリティ
- V8
- VM
- WASI
- Web Crypto API
- Web Streams API
- ワーカースレッド
- Zlib
- 他のバージョン
- オプション
String decoder (文字列デコーダ)#
ソースコード: lib/string_decoder.js
node:string_decoder モジュールは、エンコードされたマルチバイトのUTF-8およびUTF-16文字を維持する方法で、Buffer オブジェクトを文字列にデコードするためのAPIを提供します。以下のようにしてアクセスできます。
import { StringDecoder } from 'node:string_decoder';const { StringDecoder } = require('node:string_decoder');
次の例は、StringDecoder クラスの基本的な使い方を示しています。
import { StringDecoder } from 'node:string_decoder';
import { Buffer } from 'node:buffer';
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: €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回の別々の操作で書き込まれています。
import { StringDecoder } from 'node:string_decoder';
import { Buffer } from 'node:buffer';
const decoder = new StringDecoder('utf8');
decoder.write(Buffer.from([0xE2]));
decoder.write(Buffer.from([0x82]));
console.log(decoder.end(Buffer.from([0xAC]))); // Prints: €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() が実行されます。end() が呼び出された後、stringDecoder オブジェクトは新しい入力のために再利用できます。
stringDecoder.write(buffer)#
buffer<string> | <Buffer> | <TypedArray> | <DataView> デコードするバイト列。- 戻り値: <string>
デコードされた文字列を返します。Buffer、TypedArray、または DataView の末尾にある不完全なマルチバイト文字が返される文字列から省略され、次回の stringDecoder.write() または stringDecoder.end() の呼び出しのために内部バッファに保存されることを保証します。