Кодування

Unicode Escape

Кодування та декодування Unicode-послідовностей — символи у вигляді \uXXXX і назад.

Unicode escape-послідовність (\uXXXX) записує символ через його код замість самого символу — так рядковий літерал у коді може містити будь-який символ Unicode, використовуючи лише ASCII-сумісні символи в самому файлі.

Як користуватися

Типові сценарії

Що варто памʼятати

\uXXXX кодує рівно одну 16-бітну одиницю UTF-16, а не один видимий символ — для символів поза базовою багатомовною площиною (як більшість емодзі) потрібні дві такі послідовності одразу (сурогатна пара).

JSON вимагає escape лише для контрольних символів і деяких спецсимволів — вихід усіх символів у \uXXXX не обов’язковий, хоча й валідний.

Стаття про цей інструмент: Unicode Escape: що означають послідовності \uXXXX

Часті запитання

Що таке послідовність \uXXXX?

Це запис символу через його код у Unicode у шістнадцятковій формі — рівно 4 цифри після \u. Такий формат використовують у JavaScript-рядках, JSON та багатьох мовах програмування для представлення символів, які незручно чи неможливо вставити напряму.

Чому емодзі кодуються двома \uXXXX-послідовностями?

Формат \uXXXX вміщує лише 4 шістнадцяткові цифри, тобто символи з базової багатомовної площини (BMP). Символи поза нею — багато емодзі, рідкісні ієрогліфи — представляють через сурогатну пару: дві послідовності \uXXXX, які разом кодують один символ.

Чим "Не-ASCII" відрізняється від "Усіх символів" у режимі Encode?

Режим "Не-ASCII" залишає латиницю, цифри й базову пунктуацію без змін і екранує лише символи поза ASCII. Режим "Усі символи" перетворює на \uXXXX геть усі символи, включно з латинськими літерами.

Що станеться, якщо сурогатну пару розділити навпіл?

Вийде некоректний символ-«сирота» — самотній код без парного. Більшість парсерів або відхилять такий рядок з помилкою, або відобразять символ-заглушку «�».

Чи можна закодувати символ емодзі одним \uXXXX?

Ні, якщо емодзі лежить поза базовою багатомовною площиною (а більшість сучасних емодзі саме такі) — для нього завжди потрібна сурогатна пара з двох \uXXXX-послідовностей.

Статті: Кодування

Base64: навіщо потрібне кодування і як воно працює

Як Base64 перетворює бінарні дані на текст ASCII і де це реально потрібно.

Base32: чим відрізняється від Base64 і коли зручніший

Регістронезалежний алфавіт Base32 і сценарії, де він зручніший за Base64.

URL Encode/Decode: percent-encoding у посиланнях

Як спецсимволи в адресних рядках і query-параметрах перетворюються на %XX-послідовності.

HTML Entities: як безпечно виводити спецсимволи на сторінці

Чому символи < > & потрібно екранувати і як це запобігає поламаній розмітці.

JWT: структура токена та що означає "декодувати" JWT

Header, payload і signature JWT-токена та чому декодування — це не те саме, що перевірка підпису.

ROT13 і шифр Цезаря: проста заміна символів

Чому зсув на 13 літер робить ROT13 симетричним і навіщо його взагалі використовують сьогодні.

Punycode: як домени з кирилицею працюють у DNS

Як домен на кшталт «приклад.укр» перетворюється на ASCII-запис із префіксом xn--.

Азбука Морзе: як текст перетворюється на крапки й тире

Принцип кодування літер крапками й тире та де азбука Морзе застосовується зараз.

Data URI: коли вбудовувати зображення прямо в код

Як data:-URI вбудовує вміст файлу прямо в HTML чи CSS і коли це виправдано.

Gzip + Base64: стиснення даних для передачі текстом

Навіщо стиснені бінарні дані ще й кодують у Base64 перед тим, як покласти в текстове поле.

XML Entities: екранування символів у XML-документах

П’ять обов’язкових XML-entity, без яких документ ламається при парсингу.