Инспектор символов Unicode

Вставьте текст и сразу увидите каждый символ — включая невидимые.

Как пользоваться

  1. Вставьте или наберите текст: пять счётчиков, сетка символов и сведения о первом символе появляются сразу — нажимать ничего не нужно.
  2. Сначала посмотрите на пять чисел. Кодовые точки, графемные кластеры, байты UTF-8 и единицы UTF-16 — четыре способа посчитать один и тот же текст; «Café», набранное пятью буквами плюс комбинирующее ударение, это 6 кодовых точек, но 5 кластеров — обычная причина, по которой две одинаковые на вид строки не совпадают при сравнении.
  3. Нажмите на любую ячейку сетки, чтобы открыть её сведения: кодовая точка, байты UTF-8 / UTF-16 / UTF-32, официальное имя Unicode, общая категория, письменность и блок. Кластер из нескольких кодовых точек (эмодзи семьи, буква с диакритикой) получает по строке на каждую кодовую точку.
  4. Скрытые символы подсвечиваются в сетке; переключитесь на «Только скрытые», чтобы увидеть лишь эти кластеры. Сюда входят пробелы нулевой ширины, соединители, маркеры направления, неразрывные пробелы, управляющие символы и одиночные суррогаты.
  5. «Копировать кодовые точки» возвращает весь текст в виде «U+0043 U+0061 …», готовый для вставки в код или отчёт об ошибке. «Копировать этот кластер» делает то же для выбранного кластера.

Пример

Ввод

Café — “smart quotes” vs​plain 👍🏽

Кодовые точки

U+0043 U+0061 U+0066 U+0065 U+0301 U+0020 U+2014 U+0020 U+201C U+0073 U+006D U+0061 U+0072 U+0074 U+0020 U+0071 U+0075 U+006F U+0074 U+0065 U+0073 U+201D U+00A0 U+0076 U+0073 U+200B U+0070 U+006C U+0061 U+0069 U+006E U+0020 U+1F44D U+1F3FD

34 кодовые точки, 32 кластера, 2 скрытых символа: неразрывный пробел U+00A0 перед «vs» и пробел нулевой ширины U+200B перед «plain». «Cafe» плюс U+0301 — один кластер из двух кодовых точек, а 👍🏽 — один кластер из двух кодовых точек (U+1F44D + U+1F3FD). Выберите ячейку 👍🏽, чтобы увидеть обе строки.

Правила, ограничения и известные проблемы

  • Имена берутся из отобранной таблицы на 499 официальных записей — ASCII, Latin-1, общая пунктуация, полноширинные формы, распространённая пунктуация CJK, селекторы вариантов и невидимые символы форматирования. Для символов вне неё имя показывается как «—»; категория, письменность и блок вычисляются для каждого символа.
  • Имена символов и блоков намеренно остаются на официальном английском Unicode: это идентификаторы, используемые в спецификациях и коде, и перевод уже нельзя было бы сверить со стандартом.
  • Блоки и письменности соответствуют Unicode 16.0.0. Для символов, добавленных позже, блок может отсутствовать («—»), а письменность может отображаться кодом (например, «Latn»).
  • Байты UTF-8 для одиночного суррогата считаются как U+FFFD (EF BF BD) — так поступает кодировщик браузера; сам текст никогда не изменяется.
  • Графемные кластеры используют Intl.Segmenter (Chrome 87+, Safari 14.1+); без него инструмент считает по кодовым точкам и сообщает об этом в уведомлении.
  • Переносы строк считаются скрытыми символами, потому что это управляющие символы. Именно это нужно при поиске лишних байтов в конце строки, но значит, что «скрытые» включают переводы строк многострочной вставки.
  • Только чтение: текст никогда не меняется. Чтобы удалить невидимые символы, используйте «Очистку текста»; чтобы записать их как \u-последовательности или процентное кодирование — инструменты экранирования.
  • Квадратик вместо символа означает лишь то, что в системном шрифте нет этого символа, а не то, что он не назначен.
  • До 100 000 кодовых точек. Сетка отображает первые 1 000 кластеров, а все счётчики выше по-прежнему охватывают весь текст.
  • Ничего не загружается: всё работает в браузере, текст не покидает страницу, и инструмент продолжает работать даже без сети.

Что обычно нужно дальше, когда строка наконец стала понятной.