Spec-Zone.ru › Node.js 10 LTS

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

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

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

const { StringDecoder } = require('string_decoder');

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

const { StringDecoder } = require('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));

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

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

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

decoder.write(Buffer.from([0xE2]));
decoder.write(Buffer.from([0x82]));
console.log(decoder.end(Buffer.from([0xAC])));

Класс: StringDecoder

new StringDecoder([encoding])

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

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

stringDecoder.end([buffer])

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

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

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

stringDecoder.write(buffer)

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

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

v0.1.99

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

  • buffer <Buffer> | <TypedArray> | <DataView> A 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-v10.x/docs/api/string_decoder.html

Spec-Zone.ru

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