이모지 표현
Embed This Widget
Add the script tag and a data attribute to embed this widget.
Embed via iframe for maximum compatibility.
<iframe src="https://unicodefyi.com/iframe/glossary/emoji-presentation/" width="420" height="400" frameborder="0" style="border:0;border-radius:10px;max-width:100%" loading="lazy"></iframe>
Paste this URL in WordPress, Medium, or any oEmbed-compatible platform.
https://unicodefyi.com/glossary/emoji-presentation/
Add a dynamic SVG badge to your README or docs.
[](https://unicodefyi.com/glossary/emoji-presentation/)
Use the native HTML custom element.
일반적으로 이형 선택자 16(U+FE0F)을 사용하여 문자를 컬러풀한 이모지 글리프로 렌더링하는 것. 일부 문자는 기본적으로 이모지 표현, 다른 문자는 텍스트 표현으로 렌더링됩니다.
What Is Emoji Presentation?
Emoji presentation is the default rendering style for a Unicode character that has both an emoji form and a text form. When a character has emoji presentation as its default, software renders it as a colorful, pictographic glyph — the kind you see in messaging apps and social media — rather than as a monochrome text symbol.
Many characters exist in both forms. For example, U+2764 HEAVY BLACK HEART can appear as a plain black heart (text presentation) or as a vivid red heart emoji (emoji presentation), depending on the default and any variation selectors applied.
The Unicode Emoji Presentation Property
Unicode assigns each character one of three values for the Emoji_Presentation property:
- Emoji_Presentation = Yes: The character defaults to emoji rendering. Most modern emoji (😀 🎉 🌍) fall here.
- Emoji_Presentation = No: The character defaults to text rendering but can be forced to emoji rendering with VS16 (U+FE0F).
- Text characters: Characters with no emoji form at all.
You can look up a character's emoji presentation status in the Unicode emoji-data.txt data file.
Variation Selectors
Two variation selectors control presentation:
- U+FE0E (VS15, TEXT VARIATION SELECTOR): Forces text (monochrome) rendering.
- U+FE0F (VS16, EMOJI VARIATION SELECTOR): Forces emoji (colorful) rendering.
U+2764 ❤ (platform-dependent default — often text)
U+2764 U+FE0F ❤️ (forced emoji presentation)
U+2764 U+FE0E ❤ (forced text presentation)
U+2614 ☔ (defaults to emoji on most platforms)
U+2614 U+FE0E ☔ (forced text)
Why It Matters
Presentation affects:
- Visual consistency: A heart emoji on iOS may look different from Android, but both are color emoji. The text form is always monochrome.
- Font rendering: Emoji use color font formats (CBDT, SBIX, COLRv1); text uses conventional outlines. Mixing them can cause alignment issues.
- Copy-paste behavior: Applications may strip or preserve variation selectors, changing the presentation when text moves between systems.
- Screen reader behavior: Some screen readers announce emoji by name (🙂 = "slightly smiling face") and may treat text presentation differently.
- Search and matching: A ❤️ (with VS16) and ❤ (without) are technically different byte sequences.
Code Examples
# U+2764 with and without emoji variation selector
heart_text = "\u2764" # ❤ (bare, often text on macOS)
heart_emoji = "\u2764\uFE0F" # ❤️ (emoji presentation)
heart_force_text = "\u2764\uFE0E" # ❤ (text presentation)
len(heart_emoji) # 2 (two code points)
# Check if string ends with emoji variation selector
heart_emoji[-1] == "\uFE0F" # True
# Removing variation selectors
import unicodedata
def strip_vs(s):
return "".join(c for c in s if c not in ("\uFE0E", "\uFE0F"))
strip_vs("❤️") # "❤"
// JavaScript
const heartEmoji = "\u2764\uFE0F"; // ❤️
const heartText = "\u2764\uFE0E"; // ❤
heartEmoji.length; // 2
[...heartEmoji]; // ["❤", "️"] — two code points
Emoji in HTML
<!-- Direct: browser uses default presentation -->
<span>❤</span> <!-- ❤ — depends on OS/browser -->
<!-- Forced emoji presentation via variation selector -->
<span>❤️</span> <!-- ❤️ -->
<!-- CSS approach: emoji font stack ensures color rendering -->
<span style="font-family: 'Apple Color Emoji', 'Noto Color Emoji', sans-serif;">
❤
</span>
Quick Facts
| Property | Value |
|---|---|
| Unicode property | Emoji_Presentation |
| Emoji VS | U+FE0F (forces colorful rendering) |
| Text VS | U+FE0E (forces monochrome rendering) |
| Default emoji chars | ~1,400+ in Unicode 15 |
| Color font formats | CBDT/CBLC, SBIX, COLRv0/v1 |
| Platform variation | Emoji glyph designs differ per platform (Apple, Google, Twitter) |
| ZWJ sequences | Many emoji are composed with Zero Width Joiner (U+200D) |
관련 용어
웹 & HTML의 더 많은 용어
응답의 문자 인코딩을 선언하는 HTTP 헤더 매개변수(Content-Type: text/html; charset=utf-8). 문서 내 인코딩 …
::before 및 ::after 의사 요소를 통해 유니코드 이스케이프를 사용하여 생성된 콘텐츠를 삽입하는 …
CSS properties (direction, writing-mode, unicode-bidi) controlling text layout direction. Works with Unicode …
HTML에서 문자를 텍스트로 표현하는 방식. 세 가지 형태: 이름(&), 십진수(&), 16진수(&). HTML …
ECMAScript Internationalization API providing locale-aware string comparison (Collator), number formatting (NumberFormat), date …
유니코드 도메인 이름을 ASCII 호환 인코딩으로 변환하여 xn-- 접두사가 붙은 ASCII 문자열로 …
CSS supports Unicode via escape sequences (\2713 for ✓), the content property …
XML 버전의 숫자 문자 참조: ✓ 또는 ✓. XML에는 명명된 엔티티가 5개(& …
비ASCII 유니코드 문자를 포함하는 도메인 이름으로, 내부적으로는 Punycode(xn--...)로 저장되지만 사용자에게는 유니코드로 표시됩니다. …
U+2060. 줄 바꿈을 방지하는 너비 없는 문자. 너비 없는 줄 바꿈 없는 …