ИНСТР-HTML-EMOJIUnicode + UTF-8Twemoji compatibleревизия 2026-05-07

HTML entities для эмодзи

Эмодзи в HTML: Unicode коды, decimal/hex references, Twemoji. Использование в email, HTML, формах. Совместимость.

⏱ работает в браузере · без регистрации
Инструмент · ИНСТР-HTML-EMOJI|real-time
calcal.ru / html-entities-dlya-emoji-tablica
Загрузка инструмента…
3
Способа в HTML
UTF-16
JS encoding
5
Skin tones
0
Запросов к серверу

Эмодзи в HTML

Эмодзи стали стандартом современного веба. По данным Adobe Future of Creativity (2023), 92% пользователей интернета используют эмодзи в общении ежедневно. На сайтах эмодзи появляются в кнопках («📥 Скачать»), статусах («✅ Выполнено»), уведомлениях («⚠️ Внимание»), маркетинговых текстах.

Три способа вставить эмодзи в HTML:

1. Прямой Unicode (рекомендуется)

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">  <!-- ВАЖНО! -->
</head>
<body>
  <p>Привет мир! 👋😀🎉</p>
  <h1>📥 Скачать</h1>
</body>
</html>

Самый простой способ: копируете эмодзи откуда-то и вставляете в HTML. Требует UTF-8 charset (стандарт HTML5). Преимущества: короче в исходнике, читается, отлично для современного HTML5.

2. Numeric character reference

<!-- Decimal -->
<p>Smile: &#128512;</p>     <!-- 😀 -->
<p>Heart: &#10084;</p>      <!-- ❤ -->

<!-- Hex (заглавная X) -->
<p>Smile: &#x1F600;</p>     <!-- 😀 -->
<p>Heart: &#x2764;</p>      <!-- ❤ -->

Используется когда: (1) Файл не UTF-8 (legacy systems). (2) Email-шаблоны где encoding неизвестен. (3) Когда не хотите копировать эмодзи в исходник (для читаемости).

3. Через img (Twemoji)

<!-- Гарантирует одинаковый вид во всех браузерах -->
<img
  src="https://twemoji.maxcdn.com/v/latest/svg/1f600.svg"
  alt="😀"
  class="emoji"
  width="20"
  height="20"
/>

<!-- Автоматическая замена через twemoji.js -->
<script src="https://twemoji.maxcdn.com/v/latest/twemoji.min.js"></script>
<script>twemoji.parse(document.body);</script>

Плюсы: одинаковый рендеринг везде (Mac, Windows, Linux). Минусы: external request, медленнее, зависимость от CDN.

Популярные коды

ЭмодзиОписаниеDecimalHex
😀Smiling face&#128512;&#x1F600;
😂Joy&#128514;&#x1F602;
❤️Red heart&#10084;&#x2764;
👍Thumbs up&#128077;&#x1F44D;
👎Thumbs down&#128078;&#x1F44E;
🎉Party popper&#127881;&#x1F389;
🔥Fire&#128293;&#x1F525;
Star&#11088;&#x2B50;
Check mark&#9989;&#x2705;
Cross mark&#10060;&#x274C;
⚠️Warning&#9888;&#x26A0;
💡Light bulb&#128161;&#x1F4A1;
📥Inbox tray&#128229;&#x1F4E5;
🚀Rocket&#128640;&#x1F680;
💯100&#128175;&#x1F4AF;
🤔Thinking&#129300;&#x1F914;
😎Sunglasses&#128526;&#x1F60E;
🙏Folded hands&#128591;&#x1F64F;
📱Mobile phone&#128241;&#x1F4F1;
💻Laptop&#128187;&#x1F4BB;
Unicode 16.0 содержит 3782 эмодзи. Каждое имеет код точки (например, U+1F600 для 😀), официальное название, и определенный визуал. Платформы (Apple, Google, Microsoft) рендерят их по-своему, но семантика одна.Unicode Consortium — Emoji 16.0, 2024

Эмодзи в JavaScript

Длина строки — подвох

// JavaScript строки — UTF-16
"a".length          // 1
"😀".length         // 2 (suprogate pair)
"👨‍👩‍👧".length     // 8 (zero-width joiner sequence)

// Правильный подсчёт через iterator
[..."😀"].length    // 1
[..."👨‍👩‍👧"].length  // 1

// Через Intl.Segmenter (современный API)
const seg = new Intl.Segmenter('ru', { granularity: 'grapheme' });
[...seg.segment("😀a❤️")].length  // 3

Unicode escape

// Старый способ — surrogate pair (для эмодзи > U+FFFF)
"\uD83D\uDE00"      // 😀

// Современный — code point (ES2015+)
"\u{1F600}"           // 😀
"\u{2764}"            // ❤
"\u{1F44D}"           // 👍

// String.fromCodePoint
String.fromCodePoint(0x1F600)  // 😀
String.fromCodePoint(128512)   // 😀

// codePointAt — обратное преобразование
"😀".codePointAt(0).toString(16)  // "1f600"

Регулярки и эмодзи

// Простой regex для эмодзи (не идеальный)
const emojiRegex = /[\u{1F600}-\u{1F64F}]/gu;
"Hello 😀 world!".match(emojiRegex)
// ["😀"]

// Через Unicode property escapes (ES2018+)
const emojiRegex2 = /\p{Emoji}/gu;
"Привет 👋 мир 🌍".match(emojiRegex2)
// ["👋", "🌍"]

// Удалить все эмодзи из строки
"Привет 👋 мир!".replace(/\p{Emoji}/gu, "")
// "Привет  мир!"

Практические сценарии

1. Email-маркетинг

  • Subject с эмодзи — open rate +10-15% (по Litmus). Не больше 1-2 эмодзи в subject.
  • Дублирующий текст — на случай если email-клиент не показывает.
  • Корпоративные Outlook 2010 могут не показать — для B2B используйте осторожно.

2. UI/UX в продуктах

  • Кнопки с иконкой — «📥 Скачать», «✏️ Редактировать», «🗑️ Удалить».
  • Статусы — ✅ ❌ ⚠️ 🟢 🟡 🔴.
  • Empty states — «🎉 Поздравляем, у вас нет активных задач».
  • Уведомления — 🔔 для нотификации, 💬 для комментария, ❤️ для лайка.

3. Документация

  • Markdown notes — > ⚠️ Внимание, > 💡 Совет, > ❌ Ошибка.
  • Compatibility matrix — ✅ ⚠️ ❌ для статуса поддержки.
  • Changelog — 🎉 Added, 🐛 Fixed, ⚠️ Deprecated, 💥 Breaking.

4. Что НЕ делать

  • Эмодзи как единственный CTA. Всегда дублируйте текстом — для accessibility (screen readers).
  • Слишком много эмодзи. >5 на страницу = выглядит непрофессионально.
  • Эмодзи в form labels. «👤 Имя» — лучше просто «Имя».
  • Эмодзи в product URL. Плохо для SEO, плохо для share в мессенджерах.
  • Эмодзи как замена иконок. Иконки контролируются (цвет, размер). Эмодзи зависят от платформы.

Accessibility (a11y)

Screen readers (NVDA, JAWS, VoiceOver) читают эмодзи по их Unicode-имени. «😀» произносится как «smiling face». Поэтому:

  • Дублируйте текстом. «🎉 Поздравляем!» — screen reader прочитает «party popper congratulations». Без emoji он прочитает только текст. Так понятнее.
  • Aria-hidden для декоративных. <span aria-hidden="true">🎉</span> Скидка 50% — эмодзи не читается, текст — да.
  • aria-label вместо текста. <button aria-label="Удалить">🗑️</button> — иконка-only кнопка с подписью для screen reader.
  • Не злоупотребляйте. Длинная строка эмодзи в тексте раздражает screen reader пользователей.
ИСТОЧНИКИ
  1. Unicode Emoji Specification. Unicode Consortium. unicode.org/emoji. 2024.
  2. Twemoji — Open Source Emoji. Twitter / X. twemoji.twitter.com. 2024.
  3. MDN — Emoji. Mozilla. developer.mozilla.org/en-US/docs/Glossary/Emoji. 2024.
  4. Emojipedia — Emoji codes and meanings. Emojipedia. emojipedia.org. 2024.
ЧАСТЫЕ ВОПРОСЫ

Часто задаваемые вопросы

Три способа: (1) Прямой Unicode символ — копируете эмодзи 😀 и вставляете в HTML. Работает в UTF-8 (стандарт сегодня). (2) Numeric character reference — &#128512; (десятичный) или &#x1F600; (hex). Работает везде, не зависит от encoding страницы. (3) Через &lt;img&gt; — Twitter Twemoji / Apple Color Emoji. Гарантирует одинаковый рендеринг во всех браузерах.
Unicode (😀) — рекомендуется для современных HTML5 страниц с UTF-8. Короче, читаемее в исходнике. &# (numeric reference) — для legacy систем без UTF-8 поддержки или email клиентов. Hex (&#x1F600;) — для копирования из Unicode-таблиц где коды в hex. Все три рендерятся одинаково в современных браузерах. Для копи-паста удобнее напрямую Unicode.
(1) Старая ОС — Windows 7, macOS до 10.7 не имеют emoji-шрифтов. (2) Plain text email клиент без emoji support. (3) Server-side rendering без UTF-8 (charset проверьте). (4) PDF без embedded emoji font. (5) Console / terminal без TrueColor. Решения: использовать Twemoji через img, проверить charset="UTF-8" в head, в worst case — Unicode escape в JavaScript: <code>"\u{1F600}"</code>.
Twitter Open Source emoji библиотека. Каждое эмодзи — SVG/PNG, выглядит одинаково на всех платформах (vs нативные где iOS свои, Android свои). Использование: <code>&lt;img src="https://twemoji.maxcdn.com/v/latest/72x72/1f600.png" alt="😀"&gt;</code>. Также есть JS библиотека twemoji.js которая автоматически заменяет все Unicode emoji на img в DOM. Альтернатива — Noto Color Emoji (Google), Apple Color Emoji.
Технически возможно через punycode в домене (🍕pizza.com → xn--pizza-3w8a.com), но нестандартно. В пути URL — нужен URL-encoding: 😀 → %F0%9F%98%80 (4 байта UTF-8 в percent-encoded). Большинство современных браузеров отображают как emoji в адресной строке, но при копировании сохраняют encoded. Не используйте emoji в product URL — плохо для SEO и share в мессенджерах.
Современные клиенты (Gmail, Outlook, Apple Mail) — да, поддерживают. В subject line эмодзи могут увеличить open rate на 10-15% (Litmus данные). Старые корпоративные Outlook 2010 / Lotus Notes — могут не отображать. Для надёжности: эмодзи + дублирующий текст. <code>🎉 Скидка 50%!</code> — если эмодзи не отображается, текст всё равно понятен. Не злоупотребляйте — &gt;3 эмодзи в subject = spam-фильтр сработает.
Эмодзи людей могут иметь модификатор skin tone (5 вариантов из Unicode 8.0). Базовое 👍 → 👍🏻 (light), 👍🏼, 👍🏽, 👍🏾, 👍🏿 (dark). В коде: 👍 + zero-width joiner + skin tone modifier (U+1F3FB до U+1F3FF). HTML: &#128077;&#127995;. Не все системы поддерживают skin tone — в worst case рендерится как два отдельных символа.
JavaScript считает длину строки в UTF-16 code units. Эмодзи 😀 (U+1F600) — это 4-байтовый UTF-8 = 2 UTF-16 code units. Поэтому "😀".length === 2, не 1. Для подсчёта реальных «character» используйте: <code>[...string].length</code> (spread с iterator). Для skin tones и составных эмодзи (👨‍👩‍👧) length может быть 7-9. Это часто баг в input maxLength валидации.
Лиана Арифметова
АВТОРverifiedред. calcal.ru

Лиана Арифметова

Создатель и главный редактор

Миссия: демократизировать сложные расчёты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

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

Ограничение ответственности. Авторы и разработчики сервиса не несут ответственности за прямой или косвенный ущерб, возникший из-за использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию результатов.