Spec-Zone.ru › Node.js 8 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])));

Класс: new StringDecoder([encoding])

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

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

stringDecoder.end([buffer])

Добавлен в: v0.9.3
  • buffer <Буфер> Buffer содержащий байты для декодирования.

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

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

stringDecoder.write(buffer)

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

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

v0.1.99

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

  • buffer <Буфер> Buffer содержащий байты для декодирования.

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

Spec-Zone.ru

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