Декодер строк
Исходный код: lib/string_decoder.js
Модуль node:string_decoder предоставляет API для декодирования объектов Buffer в строки с сохранением многобайтовых символов UTF-8 и UTF-16. Его можно использовать следующим образом:
Модули JavaScript
import { StringDecoder } from 'node:string_decoder';CommonJS
const { StringDecoder } = require('node:string_decoder');В следующем примере показано базовое использование класса StringDecoder.
Модули JavaScript
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: €CommonJS
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, записываются в ходе трех отдельных операций:
Модули JavaScript
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: €CommonJS
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<string> Кодировка символов кодирования, которую будет использоватьStringDecoder. По умолчанию:'utf8'.
Создает новый экземпляр 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().
© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v22.x/docs/api/string_decoder.html