Символ À̸̉̂̌̈́ в Unicode: коды и как удалить
Разбор unicode символа À̸̉̂̌̈́: базовая A + диакритические знаки (U+0338 зачёркивание). Как кодируется, почему искажён, как удалить диакритики в Python, JS и онлайн-инструментах для очистки текста.
Что это за символ «À̸̉̂̌̈́»? Как он называется и кодируется в Unicode, почему буква A отображается с зачёркиванием и несколькими диакритическими знаками, и как такие комбинированные символы можно удалить или заменить в тексте?
Символ «À̸̉̂̌̈́» — это unicode символ, составленный из базовой латинской заглавной буквы A (U+0041) и нескольких диакритических знаков, наложенных поверх неё, включая зачёркивание от U+0338 COMBINING LONG SOLIDUS OVERLAY. Такие символы unicode часто встречаются в “zalgo-тексте” — искажённом контенте, где комбинирующие метки создают эффект glitch. Чтобы удалить диакритические знаки, используйте нормализацию Unicode: в Python — unicodedata.normalize('NFD', text), в JS — text.normalize('NFD').replace(/[\u0300-\u036f]/g, '').
Содержание
- Что такое символ À̸̉̂̌̈́ в Unicode
- Комбинирующие диакритические знаки и их роль
- Коды символов для À̸̉̂̌̈́ — полная таблица
- Почему буква выглядит зачёркнутой и искажённой
- Как удалить или заменить такие символы в Python
- Удаление диакритиков в JavaScript и других языках
- Онлайн-инструменты для очистки текста
- Источники
- Заключение
Что такое символ À̸̉̂̌̈́ в Unicode
Представьте: вы копируете текст из чата или мемов, а потом он ломается в базе данных или на сайте. Почему? Потому что unicode символ вроде «À̸̉̂̌̈́» — не единый глиф, а цепочка из базовой буквы и “прицепов”. Базовая часть — простая A из латинского алфавита, код U+0041. А сверху, снизу и сквозь неё навешаны диакритические знаки — комбинирующие метки, которые не существуют сами по себе.
Это не ошибка шрифта. Unicode стандарт позволяет таким трюкам: один символ может “собрать” десятки overlay-элементов. В вашем случае — ровно семь комбинирующих знаков. Коротко: A + зачёркивание + акценты. Но разберём по полочкам дальше. Интересно, правда? Ведь без понимания этого текст может “сломать” поиск или валидацию форм.
Комбинирующие диакритические знаки и их роль
Диакритические знаки — это не просто точки над i. В Unicode они живут в блоке Combining Diacritical Marks (U+0300–U+036F). Эти метки “прилипают” к предыдущему символу, меняя его вид, но не занимая места. Нормально? Один-два акцента для é или ñ. А если накидать кучу — вуаля, зачёркнутая буква с “бородой”.
Согласно справочнику по U+0338, это Nonspacing Mark — невидимый сам по себе, но рисует длинную чёрточку сверху. Другие — тоже из этого блока: grave, hook, circumflex. Почему так? Unicode эволюционировал от простых кодов к гибким: вместо тысяч предкомпонованных букв (â, ä) — базовые + миксы. Экономит место, но усложняет жизнь разработчикам. Вы когда-нибудь видели, как почта фильтрует спам по таким “уродцам”?
Коды символов для À̸̉̂̌̈́ — полная таблица
Вот разбор по байтам. Символ кодируется как последовательность UTF-8/16. Базовая A — U+0041, потом метки. Я проверил на Graphemica и Compart — рендеринг зависит от шрифта, но коды универсальны.
| Компонент | Код Unicode | Название | UTF-8 (hex) | Эффект |
|---|---|---|---|---|
| База | U+0041 | LATIN CAPITAL LETTER A | 41 | Латинская A |
| Зачёркивание | U+0338 | COMBINING LONG SOLIDUS OVERLAY | CC B8 | Чёрта сквозь букву |
| Grave | U+0300 | COMBINING GRAVE ACCENT | CC 80 | ̀ снизу слева |
| Hook | U+0309 | COMBINING HOOK ABOVE | CC 89 | ̉ крючок сверху |
| Circumflex | U+0302 | COMBINING CIRCUMFLEX ACCENT | CC 82 | ̂ шляпка |
| Caron | U+030C | COMBINING CARON | CC 8C | ̌ перевернутая V |
| Diaeresis | U+0308 | COMBINING DIAERESIS | CC 88 | ̈ умлаут |
| Acute | U+0301 | COMBINING ACUTE ACCENT | CC 81 | ́ острый акцент |
Полная строка в UTF-8: 41 CC B8 CC 80 CC 89 CC 82 CC 8C CC 88 CC 81. Скопируйте и проверьте в hex-редакторе. Шрифты вроде Noto Sans поддерживают идеально, а старые — могут сломать overlay.
Почему буква выглядит зачёркнутой и искажённой
Зачёркнутая буква — courtesy U+0338, который рисует слэш поверх всего. А остальные диакритические знаки? Это классика Zalgo-текста. Stack Overflow объясняет: берёшь букву, добавляешь 5–50 меток из U+0300–U+036F, U+0483–U+04FF. Результат — “демонический” вид, как в мемах с Cthulhu.
Почему так отображается? Браузеры/приложения комбинируют слои. Но! Не все шрифты справляются — в терминале может быть просто A̸. Плюс, это спам-трюк: обходит фильтры по ключам. Или стилизация ников в чатах. Вопрос: зачем вам это? Если текст сломался — вперёд к очистке.
Как удалить или заменить такие символы в Python
Python — король Unicode. Модуль unicodedata нормализует текст в NFD (decomposed): базовые буквы отдельно от меток. Потом фильтруем.
import unicodedata
def remove_diacritics(text):
# Нормализуем в NFD
normalized = unicodedata.normalize('NFD', text)
# Убираем Mn (Nonspacing Mark) — диакритики
without_diac = ''.join(c for c in normalized if unicodedata.category(c) != 'Mn')
return without_diac
# Тест
glitch = 'À̸̉̂̌̈́'
clean = remove_diacritics(glitch)
print(clean) # Вывод: A
Подробный гайд на Skypro подтверждает: это работает для любого zalgo. Хотите заменить? Добавьте str.maketrans для маппинга, например, ä → ae. Быстро и надёжно — для баз данных или парсинга идеально.
Удаление диакритиков в JavaScript и других языках
В браузере или Node.js проще regex после нормализации. LabEx туториал даёт готовый сниппет:
function removeDiacritics(text) {
return text.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
}
// Тест
const glitch = 'À̸̉̂̌̈́';
console.log(removeDiacritics(glitch)); // A
Regex ловит весь диапазон диакритиков. Для замены: /ä/g на ‘ae’. В SQL (PostgreSQL): unaccent('À̸̉̂̌̈́') с расширением. Bash? iconv -f UTF8 -t ASCII//TRANSLIT. А если потоковый парсинг — ICU library. Не сработает? Проверьте версию JS (ES6+).
Коротко: нормализация + фильтр. Работает в 99% случаев. Но zalgo с 100+ метками может тормозить — лимитируйте.
Онлайн-инструменты для очистки текста
Лень кодить? TextTools.ru — вставьте текст, кликните “Удалить диакритические знаки”. Мгновенно. Или Online Unicode Tools — наоборот, генерирует zalgo, но есть reverse.
Другие: Zalgo.io для тестов, Unicode Explorer для lookup кодов. Предупреждение: онлайн — риск приватности. Для продакшена — свой скрипт. А для ников в TG? Markdown ~~A~~ вместо unicode-хаков.
Источники
- Unicode – The World Standard for Text and Emoji
- U+0338 COMBINING LONG SOLIDUS OVERLAY — Unicode
- Unicode Character ‘COMBINING LONG SOLIDUS OVERLAY’ (U+0338)
- U+0338 Combining Long Solidus Overlay
- ̸ | combining long solidus overlay (U+0338) @ Graphemica
- How does Zalgo text work? — Stack Overflow
- Удалить диакритические знаки — TextTools.ru
- Удаление диакритических знаков из строки в Python — Skypro
- JavaScript | Accent Removal — LabEx
Заключение
Unicode символ «À̸̉̂̌̈́» — яркий пример, как диакритические знаки и зачёркивание (U+0338) превращают простую A в монстра. Главное — разбирайтесь через коды и нормализацию, чтобы не мучаться с текстом. Используйте Python/JS сниппеты для автоматизации, а онлайн — для тестов. Теперь ваш парсер не сломается, и zalgo не пройдёт. Вопросы? Экспериментируйте с таблицей выше!