Текст и кодирование

Инструменты Unicode и интернационализации

Текст, который выглядит одинаково на экране, но не проходит сравнение строк, вставка, превращающаяся в кракозябры из-за неверной кодировки где-то в цепочке, или имя пользователя, которое выглядит легитимно, но использует похожие символы из другого алфавита, — баги Unicode невидимы, пока нет подходящего инструмента, чтобы заглянуть под отрисованный текст. Здесь же собраны языковые теги и форматирование сообщений с множественным числом для интернационализированных приложений.

инспектор символов Unicode разбирает последовательность символов на кодовые точки, графемы и сырые байты UTF-8 — обычно именно здесь выясняется, что видимые дубликаты на самом деле различаются формой нормализации. нормализатор Unicode показывает NFC, NFD, NFKC и NFKD рядом, чтобы точно увидеть, что меняется. детектор скрытых символов находит пробелы нулевой ширины во вставленном тексте, а Проверка кириллицы и латиницы отмечает похожие буквы из другого алфавита, которые не заметишь при обычном просмотре.

9 инструментов

Вопросы об инструментах категории «Unicode & i18n»

Почему две одинаковые на вид строки не проходят проверку на равенство?

Скорее всего, они закодированы в разных формах нормализации Unicode: буква с диакритикой может быть одной составной кодовой точкой или базовой буквой плюс отдельным комбинирующим знаком, и обе выглядят одинаково, но не равны при сравнении. нормализатор Unicode показывает NFC, NFD, NFKC и NFKD рядом, чтобы точно увидеть, какую форму использует каждая строка.

Как найти скрытые или невидимые символы в тексте, который мне прислали?

детектор скрытых символов проверяет вставленный текст на пробелы нулевой ширины, соединители и другие символы, которые отображаются как ничто, — иногда их используют, чтобы спрятать содержимое от фильтров или сделать две строки визуально одинаковыми при разном содержимом. Стоит проверять текст, вставленный из ненадёжного источника.

Откуда берутся кракозябры и можно ли их исправить постфактум?

Кракозябры появляются, когда текст, закодированный в одной кодировке — часто UTF-8, — декодируется так, будто он в другой, например Latin-1 или Windows-1252. исправить кракозябры перебирает вероятные комбинации кодировок и показывает варианты восстановления вместе с исходными байтами, чтобы выбрать тот, что действительно восстанавливает исходный текст.