JavaScript TextEncoder — рядок у байти UTF-8


TextEncoder перетворює рядок на байти UTF-8Uint8Array.

автор: NagarD

Загальний опис

Рядок у JavaScript і байти у файлі — різні речі. Українська літера займає два байти, емодзі — чотири, тож text.length (кількість символів) і реальний розмір у байтах — різні числа.

Кодувальник потрібен усюди, де дані йдуть у двійковий світ: криптографія (crypto.subtle приймає лише байти), WebSocket у двійковому режимі, підрахунок справжнього розміру перед відправкою.

Кодування завжди UTF-8 — іншого варіанта немає й не передбачено.

автор: NagarD

Синтаксис

const bytes = new TextEncoder().encode("текст");

властивості

Властивість Опис
encoding Завжди utf-8.

методи

Метод Опис
encode Рядок → Uint8Array.

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
TextEncoder 38+ 19+ 10.1+ 25+ 79+ -
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
TextEncoder 38+ yes yes 10.3+

Приклади

+ запропонувати свій приклад у пісочниці

Скільки байтів насправді займає рядок і як його захешувати.

// top-level await працює лише в модулях — тут той самий код в async-функції
(async () => {
    const encoder = new TextEncoder();
    const bytes = encoder.encode('Привіт 👋');

    console.log('Привіт 👋'.length); // 9 символів
    console.log(bytes.length);       // 17 байтів — не те саме!

    // crypto приймає лише байти
    const hash = await crypto.subtle.digest('SHA-256', encoder.encode('пароль'));
    console.log(new Uint8Array(hash).length); // 32
})();
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід