Decodificatore di stringhe
[Stabile: 2 - Stabile]
Stabile: 2 Stabilità: 2 - Stabile
Codice Sorgente: lib/string_decoder.js
Il modulo node:string_decoder fornisce un'API per decodificare oggetti Buffer in stringhe in modo da preservare i caratteri UTF-8 e UTF-16 multi-byte codificati. È possibile accedervi utilizzando:
import { StringDecoder } from 'node:string_decoder';const { StringDecoder } = require('node:string_decoder');L'esempio seguente mostra l'uso di base della classe 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)); // Stampa: ¢
const euro = Buffer.from([0xE2, 0x82, 0xAC]);
console.log(decoder.write(euro)); // Stampa: €const { StringDecoder } = require('node:string_decoder');
const decoder = new StringDecoder('utf8');
const cent = Buffer.from([0xC2, 0xA2]);
console.log(decoder.write(cent)); // Stampa: ¢
const euro = Buffer.from([0xE2, 0x82, 0xAC]);
console.log(decoder.write(euro)); // Stampa: €Quando un'istanza Buffer viene scritta nell'istanza StringDecoder, viene utilizzato un buffer interno per garantire che la stringa decodificata non contenga caratteri multibyte incompleti. Questi vengono conservati nel buffer fino alla successiva chiamata a stringDecoder.write() o fino a quando non viene chiamato stringDecoder.end().
Nell'esempio seguente, i tre byte con codifica UTF-8 del simbolo dell'Euro europeo (€) vengono scritti su tre operazioni separate:
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]))); // Stampa: €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]))); // Stampa: €Classe: StringDecoder
new StringDecoder([encoding])
Aggiunto in: v0.1.99
Crea una nuova istanza di StringDecoder.
stringDecoder.end([buffer])
Aggiunto in: v0.9.3
buffer<stringa> | <Buffer> | <TypedArray> | <DataView> I byte da decodificare.- Restituisce: <stringa>
Restituisce qualsiasi input rimanente memorizzato nel buffer interno come stringa. I byte che rappresentano caratteri UTF-8 e UTF-16 incompleti verranno sostituiti con caratteri di sostituzione appropriati per la codifica dei caratteri.
Se viene fornito l'argomento buffer, viene eseguita una chiamata finale a stringDecoder.write() prima di restituire l'input rimanente. Dopo che end() è stato chiamato, l'oggetto stringDecoder può essere riutilizzato per un nuovo input.
stringDecoder.write(buffer)
[Cronologia]
| Versione | Modifiche |
|---|---|
| v8.0.0 | Ogni carattere non valido viene ora sostituito da un singolo carattere di sostituzione anziché uno per ogni singolo byte. |
| v0.1.99 | Aggiunto in: v0.1.99 |
buffer<stringa> | <Buffer> | <TypedArray> | <DataView> I byte da decodificare.- Restituisce: <stringa>
Restituisce una stringa decodificata, assicurandosi che eventuali caratteri multibyte incompleti alla fine del Buffer, o TypedArray, o DataView vengano omessi dalla stringa restituita e memorizzati in un buffer interno per la successiva chiamata a stringDecoder.write() o stringDecoder.end().