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