Декодер строк
Исходный код: 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)); // Prints: ¢
const euro = Buffer.from([0xE2, 0x82, 0xAC]);
console.log(decoder.write(euro)); // Prints: € 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]))); // Prints: € copy Класс: StringDecoder
new StringDecoder([encoding])
-
encoding<строка> Кодировка символов кодирования используемая дляStringDecoder. По умолчанию:'utf8'.
Создает новый экземпляр StringDecoder.
stringDecoder.end([buffer])
-
buffer<строка> | <Буфер> | <TypedArray> | <DataView> Байты для декодирования. - Возвращает: <строка>
Возвращает любые оставшиеся входные данные, хранящиеся во внутреннем буфере, в виде строки. Байты, представляющие неполные символы UTF-8 и UTF-16, будут заменены символами-заменителем, соответствующими кодировке символов.
Если передан аргумент buffer, перед возвратом оставшихся входных данных выполняется один последний вызов stringDecoder.write(). После вызова end(), объект stringDecoder может быть повторно использован для новых входных данных.
stringDecoder.write(buffer)
-
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-v20.x/docs/api/string_decoder.html