Spec-Zone.ru › Node.js 18 LTS

Декодер строк

Устойчивость: 2 - Стабильно

Исходный код: lib/string_decoder.js

Модуль node:string_decoder предоставляет API для декодирования Buffer объектов в строки таким образом, чтобы сохранялись закодированные многобайтовые символы UTF-8 и UTF-16. К нему можно получить доступ следующим образом:

const { StringDecoder } = require('node:string_decoder'); copy

Следующий пример демонстрирует базовое использование класса StringDecoder.

const { StringDecoder } = require('node:string_decoder');
const decoder = new StringDecoder('utf8');

const cent = Buffer.from([0xC2, 0xA2]);
console.log(decoder.write(cent));

const euro = Buffer.from([0xE2, 0x82, 0xAC]);
console.log(decoder.write(euro)); copy

Когда экземпляр Buffer записывается в экземпляр StringDecoder, используется внутренний буфер для гарантии, что декодированная строка не содержит неполных многобайтовых символов. Эти символы сохраняются в буфере до следующего вызова stringDecoder.write() или до вызова stringDecoder.end().

В следующем примере три байта UTF-8 кодированного символа евро (€) записываются в три отдельных операции:

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]))); copy

Класс: StringDecoder

new StringDecoder([encoding])

Добавлен в: v0.1.99
  • encoding <строка> Кодировка символов кодирования StringDecoder. По умолчанию: 'utf8'.

Создаёт новый экземпляр StringDecoder.

stringDecoder.end([buffer])

Добавлен в: v0.9.3
  • buffer <Буфер> | <Массив типов> | <DataView> Buffer, или TypedArray, или DataView содержащий байты для декодирования.
  • Возвращает: <строка>

Возвращает оставшийся введённый в буфер в виде строки. Байты, представляющие неполные символы UTF-8 и UTF-16, будут заменены символами подстановки, соответствующими кодировке символов.

Если передан аргумент buffer, перед возвратом оставшегося ввода выполняется один дополнительный вызов stringDecoder.write(). После вызова end() объект stringDecoder можно повторно использовать для нового ввода.

stringDecoder.write(buffer)

История
Версия Изменения
v8.0.0

Каждый некорректный символ теперь заменяется одним символом подстановки вместо одного для каждого отдельного байта.

v0.1.99

Добавлен в: v0.1.99

  • buffer <Буфер> | <Массив типов> | <DataView> Buffer, или TypedArray, или DataView содержащий байты для декодирования.
  • Возвращает: <строка>

Возвращает декодированную строку, обеспечивая, что любые неполные многобайтовые символы в конце 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-v18.x/docs/api/string_decoder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API