Декодер строк
Исходный код: lib/string_decoder.js
Модуль 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])
-
encoding<строка> Кодировка символов кодирования дляStringDecoder. По умолчанию:'utf8'.
Создает новый экземпляр StringDecoder.
stringDecoder.end([buffer])
-
buffer<Буфер> | <Массив типов> | <DataView>Buffer, илиTypedArray, илиDataViewсодержащий байты для декодирования. - Возвращает: <строка>
Возвращает оставшийся входной данные, хранящиеся во внутреннем буфере, как строку. Байты, представляющие неполные символы UTF-8 и UTF-16, будут заменены символами подстановки, соответствующими кодировке символов.
Если передан аргумент buffer, перед возвратом оставшегося ввода выполняется последний вызов stringDecoder.write().
stringDecoder.write(buffer)
-
buffer<Буфер> | <Массив типов> | <DataView> ABuffer, orTypedArray, orDataViewсодержащий байты для декодирования. - Возвращает: <строка>
Возвращает декодированную строку, гарантируя, что любые неполные многобайтовые символы в конце 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-v12.x/docs/api/string_decoder.html