لوحة مفاتيح الرموز التعبيرية

تصفح وانسخ أياً من 3,953 رمزاً تعبيرياً منظمة حسب الفئة. يعمل في أي متصفح دون الحاجة إلى تثبيت.

Finder

⌨️

""

How to Use

  1. 1
    Browse by category or search

    Navigate through emoji categories — Smileys & Emotion, People & Body, Animals & Nature, Food & Drink, Travel & Places, Activities, Objects, Symbols, and Flags — or type a keyword in the search bar to filter by CLDR annotation.

  2. 2
    Select an emoji to copy

    Click any emoji to copy it to your clipboard instantly. The emoji is copied as a UTF-8 encoded character, compatible with all modern text inputs, messaging apps, and code editors.

  3. 3
    Access encoding formats

    Click the detail icon next to any emoji to view its full encoding in all 8 formats — UTF-8 bytes, UTF-16, HTML entity, CSS escape, JavaScript escape, Python escape, Java escape, and URL percent-encoding — before copying.

About

An emoji keyboard is fundamentally an interface over the Unicode emoji dataset, organized according to the categorization defined in Unicode's emoji-test.txt file. The nine top-level groups — Smileys & Emotion, People & Body, Component, Animals & Nature, Food & Drink, Travel & Places, Activities, Objects, and Flags — were established to mirror how operating systems organize their native pickers, ensuring familiarity for users transitioning between platforms and tools.

Search functionality in emoji keyboards relies on CLDR (Common Locale Data Repository) keyword annotations. For any given emoji, CLDR provides a short name (used for accessibility and voice input) plus a list of search keywords in each supported language. For example, U+1F355 (Pizza) has CLDR keywords including 'cheese', 'slice', and 'pizza' in English, but completely different keywords in Japanese, Arabic, and Portuguese. This multilingual annotation data is what allows emoji search to work across languages without requiring separate keyword databases per locale.

When you copy an emoji from a keyboard tool, the character is transmitted as a Unicode scalar value encoded in the operating system's clipboard format — typically UTF-16 on Windows, UTF-8 on macOS and Linux. Applications receiving the paste decode this back into codepoints for storage and rendering. For developers, understanding the encoding pipeline matters: a single emoji may occupy 1–4 bytes in UTF-8, 2 or 4 bytes in UTF-16 (surrogate pairs for codepoints above U+FFFF), and may span multiple codepoints if it is a sequence character.

FAQ

Why do some emojis paste correctly in some apps but show as boxes in others?
When you paste an emoji into an application, that app must have a font installed that includes a glyph for that codepoint or sequence. On modern operating systems, system fonts like Apple Color Emoji (macOS/iOS), Noto Color Emoji (Android/Linux), and Segoe UI Emoji (Windows) cover the vast majority of Unicode emoji. However, older applications with fixed-width fonts, embedded text renderers, or character set restrictions may not support emoji glyphs. Additionally, some input fields have server-side character set restrictions — databases using latin1 encoding will fail to store any emoji, as emoji require UTF-8 multibyte encoding.
What is the difference between emoji presentation and text presentation?
Many Unicode characters that appear as emoji can also be rendered in a plain text (black and white, monochrome) style. The rendering mode is controlled by variation selectors: appending U+FE0F requests emoji presentation, while U+FE0E requests text presentation. When neither selector is present, the rendering defaults to whichever presentation is specified in Unicode's emoji-variation-sequences.txt file for that codepoint. This matters for symbols like ☎ (telephone), ♥ (heart suit), and ⚠ (warning sign), which have both text and emoji presentations but may render differently depending on the platform's default.
How are emoji categories defined in Unicode?
The Unicode Consortium defines emoji categories and subcategories in the emoji-test.txt data file, published with each Unicode release. The current top-level groups include Smileys & Emotion, People & Body, Component, Animals & Nature, Food & Drink, Travel & Places, Activities, Objects, Symbols, and Flags. These groupings are informational rather than normative — vendors may reorder or re-categorize emoji in their own keyboards. CLDR also provides keyword annotations used for search, which are independent of the official grouping hierarchy and often more useful for discovery.
Can emoji be used in programming languages and code?
Yes — because emoji are valid Unicode characters, they can appear in string literals and, in some languages, as identifiers. JavaScript, Python 3, Swift, and Go all support emoji in string literals natively via UTF-16 or UTF-8 encoding. However, emoji in code require careful handling of code unit counts: a single emoji like 🏳️‍🌈 (rainbow flag) is a ZWJ sequence composed of 4 codepoints and 14 bytes in UTF-8, but may count as varying numbers of 'characters' depending on the language's string model. Python's len('🏳️‍🌈') returns 4 (codepoints), JavaScript's '🏳️‍🌈'.length returns 6 (UTF-16 code units).
What is the maximum number of codepoints in a single emoji?
There is no hard maximum defined by the Unicode Standard, but in practice the most complex RGI (Recommended for General Interchange) ZWJ sequences consist of around 7 codepoints — for example, a family emoji with two adults and two children using skin tone modifiers. The rainbow flag emoji (U+1F3F3 + U+FE0F + U+200D + U+1F308) uses 4 codepoints. When processing emoji programmatically, text segmentation algorithms defined in Unicode Technical Report #29 (Unicode Text Segmentation) are used to determine grapheme cluster boundaries, ensuring that a complex emoji sequence is treated as a single 'character' for display and cursor movement purposes.