Декодер строк¶
Стабильность: 2 – Стабильная
АПИ является удовлетворительным. Совместимость с NPM имеет высший приоритет и не будет нарушена кроме случаев явной необходимости.
Модуль node:string_decoder предоставляет API для декодирования объектов Buffer в строки с сохранением закодированных многобайтовых символов UTF-8 и UTF-16. Доступ к нему можно получить, используя:
1 | |
В следующем примере показано базовое использование класса StringDecoder.
1 2 3 4 5 6 7 8 | |
Когда экземпляр Buffer записывается в экземпляр StringDecoder, используется внутренний буфер, чтобы убедиться, что декодированная строка не содержит неполных многобайтовых символов. Они хранятся в буфере до следующего вызова stringDecoder.write() или до вызова stringDecoder.end().
В следующем примере три байта символа европейского евро (€) в кодировке UTF-8 записываются за три отдельные операции:
1 2 3 4 5 6 7 | |
Класс: StringDecoder¶
new StringDecoder([encoding])¶
encoding<string>Символьная кодировка, которую будет использоватьStringDecoder. По умолчанию:'utf8'.
Создает новый экземпляр StringDecoder.
stringDecoder.end([buffer])¶
buffer{Buffer|TypedArray|DataView}Буфер, илиTypedArray, илиDataView, содержащий байты для декодирования.- Возвращает:
<string>
Возвращает все оставшиеся входные данные, хранящиеся во внутреннем буфере, в виде строки. Байты, представляющие неполные символы UTF-8 и UTF-16, будут заменены символами-заместителями, соответствующими кодировке.
Если указан аргумент buffer, то перед возвратом оставшегося ввода выполняется последний вызов stringDecoder.write(). После вызова end() объект stringDecoder может быть повторно использован для нового ввода.
stringDecoder.write(buffer)¶
buffer{Buffer|TypedArray|DataView}Буфер, илиTypedArray, илиDataView, содержащий байты для декодирования.- Возвращает:
<string>
Возвращает декодированную строку, гарантируя, что любые неполные многобайтовые символы в конце Buffer, или TypedArray, или DataView будут исключены из возвращаемой строки и сохранены во внутреннем буфере для следующего вызова stringDecoder.write() или stringDecoder.end().