Інспектор символів Unicode
Дивіться кодові точки, байти UTF-8/UTF-16 та escape-послідовності кожного символу
Про цей інструмент
Вставте будь-який текст і побачте кожен символ розібраним: його кодову точку (U+XXXX), байти UTF-8, одиниці UTF-16, escape-послідовність JavaScript, HTML-сутність і загальну категорію — плюс підсумки за кодовими точками, одиницями UTF-16, байтами UTF-8 і символами так, як їх сприймає користувач (кластерами графем).
Це інструмент для моментів «чому цей рядок такий дивний?»: невидимі символи (пробіли нульової ширини, BOM, позначки напрямку) з’являються видимими рядками; схожі на вигляд символи (кирилична а проти латинської a) виявляють різні кодові точки; а емодзі, що «є одним символом», виявляється сімома кодовими точками, з’єднаними з’єднувачами нульової ширини.
Чотири різні підсумки довжини відповідають на вічне питання, чому .length у JavaScript, байтовий ліміт бази даних і те, що бачить користувач, ніяк не можуть погодитися, якої довжини рядок.
Часті запитання
- Чому "🎉".length === 2 у JavaScript?
- Рядки JavaScript рахують одиниці коду UTF-16. Символи понад U+FFFF — включно з більшістю емодзі — потребують сурогатної пари, тобто двох одиниць. Інспектор показує і одиниці, і справжню кодову точку, а підсумок рахує їх окремо.
- Що таке кластер графем?
- Те, що читач сприймає як один символ. é може бути двома кодовими точками (e + комбінований акцент), а емодзі-родина — сімома й більше, з’єднаними з’єднувачами нульової ширини. Підрахунок графем використовує браузерний Intl.Segmenter — найближче до «символів такими, якими їх бачать користувачі».
- Як знайти невидимі символи в рядку?
- Вставте його сюди — кожна кодова точка отримає власний рядок, включно з пробілами нульової ширини (U+200B), нерозривними пробілами (U+00A0), BOM (U+FEFF) і позначками напрямку, кожна з категорією. Це класичні винуватці «однакових» рядків, що не проходять перевірку на рівність.
- Що мені кажуть послідовності байтів UTF-8?
- Саме те, що буде збережено чи передано: ASCII — один байт, більшість латинських розширень — два, ієрогліфи — три, емодзі — чотири. Якщо система обріже посеред послідовності, ви отримаєте символи заміни (�) — байтовий вигляд показує, куди впали б такі розрізи.