Spec-Zone.ru › Deno 2

string_decoder

Модуль node:string_decoder предоставляет API для декодирования объектов Buffer в строки с сохранением закодированных многобайтовых символов UTF-8 и UTF-16. Доступ к нему можно получить с помощью:

import { StringDecoder } from 'node:string_decoder';

В следующем примере показано базовое использование класса StringDecoder.

import { StringDecoder } from '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: €

При записи экземпляра Buffer в экземпляр StringDecoder используется внутренний буфер, чтобы декодированная строка не содержала неполных многобайтовых символов. Они хранятся в буфере до следующего вызова stringDecoder.write() или вызова stringDecoder.end().

В следующем примере три байта символа евро (€), закодированные в UTF-8, записываются за три отдельные операции:

import { StringDecoder } from '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: €

Использование в Deno

import * as mod from "node:string_decoder";

class StringDecoder

Использование в Deno

import { StringDecoder } from "node:string_decoder";

Модуль node:string_decoder предоставляет API для декодирования объектов Buffer в строки с сохранением закодированных многобайтовых символов UTF-8 и UTF-16. Доступ к нему можно получить с помощью:

import { StringDecoder } from 'node:string_decoder';

В следующем примере показано базовое использование класса StringDecoder.

import { StringDecoder } from '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: €

При записи экземпляра Buffer в экземпляр StringDecoder используется внутренний буфер, чтобы декодированная строка не содержала неполных многобайтовых символов. Они хранятся в буфере до следующего вызова stringDecoder.write() или вызова stringDecoder.end().

В следующем примере три байта символа евро (€), закодированные в UTF-8, записываются за три отдельные операции:

import { StringDecoder } from '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: €

Конструкторы

StringDecoder(encoding?: BufferEncoding)
new

Методы

end(buffer?:
string
| Buffer
| ArrayBufferView
): string

Возвращает все оставшиеся входные данные, хранящиеся во внутреннем буфере, в виде строки. Байты, представляющие неполные символы UTF-8 и UTF-16, будут заменены символами подстановки, соответствующими кодировке символов.

Если указан аргумент buffer, перед возвратом оставшихся входных данных выполняется последний вызов stringDecoder.write(). После вызова end() объект stringDecoder можно повторно использовать для новых входных данных.

write(buffer:
string
| Buffer
| ArrayBufferView
): string

Возвращает декодированную строку, исключая из результата все неполные многобайтовые символы в конце Buffer, TypedArray или DataView и сохраняя их во внутреннем буфере для следующего вызова stringDecoder.write() или stringDecoder.end().

См. также

  • исходный код


© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/string_decoder

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API