Spec-Zone.ru › Node.js 6 LTS

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

Уровень стабильности: 2 - Стабильно

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

const StringDecoder = require('string_decoder').StringDecoder;

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

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

Добавлен в: 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-v6.x/docs/api/string_decoder.html

Spec-Zone.ru

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