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