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.
Примеры
Представление текста с помощью массивов с типом
Этот пример демонстрирует, как декодировать китайский/японский символ , представленный пятью различными массивами с типом:
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 | 1918Реализована немного другая версия спецификации. |
25 | 10.1 | 38 | 1918Реализована немного другая версия спецификации. |
25 | 10.3 | 3.0 | 38 |
TextDecoder |
38 | 79 | 1918Реализована немного другая версия спецификации. |
25 | 10.1 | 38 | 1918Реализована немного другая версия спецификации. |
25 | 10.3 | 3.0 | 38 |
decode |
38 | 79 | 1918Реализована немного другая версия спецификации. |
25 | 10.1 | 38 | 1918Реализована немного другая версия спецификации. |
25 | 10.3 | 3.0 | 38 |
encoding |
38 | 79 | 1918Реализована немного другая версия спецификации. |
25 | 10.1 | 38 | 1918Реализована немного другая версия спецификации. |
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