JavaScript TextEncoder.encode() — рядок у байти UTF-8
Метод encode() перетворює рядок на байти UTF-8 — Uint8Array.
Загальний опис
Найкорисніше побічне застосування — дізнатись справжній розмір тексту. Властивість length рядка рахує символи, а не байти: українська літера займає два байти, емодзі — чотири.
Тому обмеження «не більше 255 байтів» (а такі в базах даних і протоколах трапляються постійно) неможливо перевірити через text.length.
Основне ж призначення — годувати байтами те, що рядків не приймає: crypto.subtle, двійковий WebSocket, власні протоколи.
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| encode | 38+ | 19+ | 10.1+ | 25+ | 79+ | - |
| Переглядач | ||||
|---|---|---|---|---|
| encode | 38+ | yes | yes | 10.3+ |
Приклади
+ запропонувати свій приклад у пісочниці
Скільки байтів насправді займає текст.
const encoder = new TextEncoder();
const text = 'Привіт 👋';
console.log(text.length); // 9 символів
console.log(encoder.encode(text).length); // 17 байтів!
// перевірка обмеження бази даних
function fitsIn(text, maxBytes) {
return new TextEncoder().encode(text).length <= maxBytes;
}
console.log(fitsIn('Привіт', 10)); // false — 12 байтів
Коментарі
Коментарів ще немає — будьте першим!