Spec-Zone.ru › Web APIs

TextDecoder

Базовая Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Web Workers.

Интерфейс TextDecoder представляет собой декодер для конкретного кодирования текста, такого как UTF-8, ISO-8859-2, KOI8-R, GBK, и т. д. Декодер принимает поток байтов в качестве входных данных и выводит поток кодовых точек.

Конструктор

TextDecoder()

Возвращает новый TextDecoder , который будет генерировать поток кодовых точек с заданным методом декодирования в параметрах.

Свойства экземпляра

Интерфейс TextDecoder не наследует никаких свойств.

TextDecoder.encoding Только для чтения

Строка, содержащая имя декодера, которое описывает метод, который будет использовать TextDecoder.

TextDecoder.fatal Только для чтения

Значение Boolean, указывающее, является ли режим ошибки фатальным.

TextDecoder.ignoreBOM Только для чтения

Значение Boolean, указывающее, игнорируется ли метка порядка байтов.

Методы экземпляра

Интерфейс TextDecoder не наследует никаких методов.

TextDecoder.decode()

Возвращает строку, содержащую текст, декодированный с помощью метода конкретного объекта TextDecoder.

Примеры

Представление текста с помощью массивов с типом

Этот пример демонстрирует, как декодировать китайский/японский символ Chinese character meaning lucky, представленный пятью различными массивами с типом: Uint8Array, Int8Array, Uint16Array, Int16Array и Int32Array.

let utf8decoder = new TextDecoder(); // default 'utf-8' or 'utf8'

let u8arr = new Uint8Array([240, 160, 174, 183]);
let i8arr = new Int8Array([-16, -96, -82, -73]);
let u16arr = new Uint16Array([41200, 47022]);
let i16arr = new Int16Array([-24336, -18514]);
let i32arr = new Int32Array([-1213292304]);

console.log(utf8decoder.decode(u8arr));
console.log(utf8decoder.decode(i8arr));
console.log(utf8decoder.decode(u16arr));
console.log(utf8decoder.decode(i16arr));
console.log(utf8decoder.decode(i32arr));

Обработка текста, отличного от UTF-8

В этом примере мы декодируем русский текст "Привет, мир!", что означает "Здравствуйте, мир!". В нашем конструкторе TextDecoder() мы указываем кодировку символов Windows-1251, которая подходит для кириллицы.

const win1251decoder = new TextDecoder("windows-1251");
const bytes = new Uint8Array([
  207, 240, 232, 226, 229, 242, 44, 32, 236, 232, 240, 33,
]);
console.log(win1251decoder.decode(bytes)); // Привет, мир!

Спецификации

Спецификация
Кодирование
# interface-textdecoder

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
TextDecoder 38 79 19
18Реализована немного другая версия спецификации.
25 10.1 38 19
18Реализована немного другая версия спецификации.
25 10.3 3.0 38
TextDecoder 38 79 19
18Реализована немного другая версия спецификации.
25 10.1 38 19
18Реализована немного другая версия спецификации.
25 10.3 3.0 38
decode 38 79 19
18Реализована немного другая версия спецификации.
25 10.1 38 19
18Реализована немного другая версия спецификации.
25 10.3 3.0 38
encoding 38 79 19
18Реализована немного другая версия спецификации.
25 10.1 38 19
18Реализована немного другая версия спецификации.
25 10.3 3.0 38
fatal 38 79 36 25 10.1 38 36 25 10.3 3.0 38
ignoreBOM 38 79 63 25 10.1 38 63 25 10.3 3.0 38
worker_support 38 79 20 25 10.1 38 20 25 10.3 3.0 38

См. также

  • Интерфейс TextEncoder, описывающий обратную операцию.
  • Плагин, позволяющий использовать этот интерфейс в браузерах, которые его не поддерживают.
  • Node.js поддерживает глобальный экспорт с версии 11.0.0

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder

Spec-Zone.ru

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