Символы HTML и HTML‑сущности

Что такое символы в HTML?
При создании веб‑страницы вы используете множество знаков для пунктуации и разметки. Большинство символов можно вставлять прямо в текст, но некоторые имеют специальное значение в HTML и интерпретируются браузером как часть разметки. К таким символам относятся:
- Амперсанд (
&) - Меньше (
<) - Больше (
>) - Двойная кавычка (
") - Одинарная кавычка (
')
Если вы попытаетесь вставить эти символы в код без экранирования, браузер может ошибочно интерпретировать их как теги или начать неверно парсить документ. Другие символы (например, ©, ™, ®) обычно отображаются корректно, но иногда их удобнее вставлять через сущности, особенно при проблемах кодировок или при редактировании в простых текстовых редакторах.
Важно: сущности переводятся браузером в соответствующие символы при отображении страницы — исходный HTML содержит код, а пользователь видит символ.
Именованные и числовые сущности
Символ можно представить либо именованной сущностью (читаемая форма), либо числовой сущностью (код). Ниже — удобная таблица с распространёнными символами:
| Символ | Именованная сущность | Числовая сущность |
|---|---|---|
| Ampersand | & | & |
| Less than | < | < |
| Greater than | > | > |
| Double quote | " | " |
| Single quote | ' | ' |
| Copyright | © | © |
| Trademark | ™ | ™ |
| Registered trademark | ® | ® |
Пример: используя © или © в HTML, браузер отобразит символ ©.
Добавление эмодзи на страницу
Эмодзи в HTML обычно вставляют через числовые сущности в шестнадцатеричном формате (Unicode code point). Не все эмодзи имеют именованные сущности, поэтому числовые — универсальны. Примеры:
| Символ | Числовая сущность |
|---|---|
| Улыбающееся лицо (😃) | 😃 |
| Смеющееся лицо (😆) | 😆 |
| Лицо с нимбом (😇) | 😇 |
Учтите, что отображение эмодзи зависит от системы и шрифта клиента — на разных платформах один и тот же код может выглядеть по‑разному.
Как вставить символы в HTML — пошаговый пример
- Создайте новый HTML‑файл и добавьте базовую структуру страницы. Убедитесь, что указана кодировка UTF‑8:
Пример символов и сущностей
- Внутри тега
вставьте контент, используя именованные или числовые сущности:
Символы в HTML
Символ авторского права: ©
Амперсанд: &
Товарный знак: ™
Улыбающееся лицо: 😃
Сохраните файл и откройте его в браузере — увидите соответствующие символы.
Если вы используете редактор, который меняет кодировку при сохранении, проверьте, что файл действительно сохранён в UTF‑8 без BOM.
Частые ошибки и когда это не работает
- Файл сохранён в некорректной кодировке (например, Windows‑1251) — символы будут искажены. Решение: сохранить в UTF‑8.
- Сущности внутри атрибутов — неэкранированные кавычки могут ломать атрибуты; используйте
"для двойных кавычек внутри значений. - Сервисы или CMS иногда автоматически экранируют или декодируют сущности — протестируйте вывод на проде/стейджинге.
- Некоторые шрифты не содержат глифы для редких символов или эмодзи — символ будет заменён на квадратик или другой маркер.
Альтернативные подходы
- Использовать Unicode‑символы напрямую (например, вставить ©) если вы уверены в кодировке и поддержке редактора.
- Подключать и использовать веб‑шрифты или SVG‑иконки для специальных символов (например, логотипы или фирменные знаки) — лучше для консистентности отображения.
- Заменять специфические символы на изображения (PNG/SVG) если требуется фиксированный внешний вид.
Плюсы/минусы:
- Именованные сущности читабельнее, но не всегда доступны для всех символов.
- Числовые сущности универсальны, но менее наглядна для человека.
- Прямой Unicode удобен, но требует контроля кодировок.
Ментальные модели и эвристики
- Правило 1: если символ влияет на разметку (например,
<или&), экранируйте. - Правило 2: для текста — предпочитайте именованные сущности, если они есть, для машинных вставок — числовые.
- Правило 3: для визуального контроля используйте SVG/шрифты, если внешний вид критичен.
Мини‑методика: как внедрять сущности в проект
- Определите, где появляются специальные символы — шаблоны, CMS, статический контент.
- Выберите подход: именованные сущности, числовые сущности или прямой Unicode.
- Проверяйте кодировку файлов и HTTP‑заголовки (Content‑Type; charset=UTF-8).
- Покройте тестами вывод контента (см. раздел «Тесты и критерии приёмки»).
Чеклист для разработчика и контент‑редактора
Для разработчика:
- Проверил кодировку файлов (UTF‑8).
- [ ] Использовал
<,>,&в динамически формируемом HTML. - Тестировал вывод в основных браузерах и платформах.
Для редактора контента:
- Не вставлял сырые теги вместо сущностей.
- Вводил символы через CMS‑интерфейс и проверял итоговый HTML.
- При необходимости использовал изображения или SVG для логотипов.
Критерии приёмки
- Все спецсимволы корректно отображаются на Firefox, Chrome, Safari и Edge.
- Никакие спецсимволы не разрушают HTML‑структуру страницы.
- Кодировка страницы явно указана и соответствует реальному байтовому представлению (UTF‑8).
Безопасность и конфиденциальность
- Некорректное экранирование амперсанда и угловых скобок может привести к XSS‑уязвимостям при подстановке пользовательского ввода в HTML. Всегда экранируйте пользовательский контент на стороне сервера или используйте шаблонизатор с автоматическим экранированием.
- Не храните «сырые» HTML‑фрагменты без проверки; если надо — используйте белые списки разрешённых тегов и сущностей.
Совместимость и рекомендации
- Для поддержки старых браузеров и систем отображения контента проверяйте, как отрисовываются редкие символы.
- Эмодзи лучше использовать как декоративный элемент, но не как единственный способ передачи важной информации (доступность).
- При международной локализации учитывайте различия в отображении символов и знаков на разных платформах.
Тесты и сценарии приёмки
- Открыть страницу в разных браузерах и ОС: проверить визуал отображения &, <, >, “ и ‘ .
- Поменять кодировку файла на non‑UTF‑8 и убедиться, что тесты обнаруживают некорректный вывод.
- Вставить пользовательский ввод с HTML‑тегами и убедиться, что экранирование предотвращает выполнение скриптов.
Однострочный глоссарий
- HTML‑сущность — текстовый код вида
&name;илиNNN;, который браузер преобразует в символ. - Именованная сущность — человекочитаемая форма (
). - Числовая сущность — код по Unicode (
или).
Краткое резюме
Используйте именованные или числовые сущности для безопасного отображения специальных символов в HTML. Проверяйте кодировки, тестируйте в реальных браузерах и экранируйте пользовательский ввод, чтобы избежать ошибок в разметке и уязвимостей.
Важно: при сомнении — применяйте числовую сущность или SVG/шрифт для гарантированного отображения.
Похожие материалы
Исправить ошибку Microsoft Store 0xC002001B
Установка Telegram на Linux — полный гид
Как исправить Duplicate unique key в WoW
Создать пользовательский тип записи в WordPress
Почему AOL Mail не открывает PDF и как исправить