UtilityProductivityDeveloperSocial

Emoji Picker & Search

Search emoji by name or feeling and copy them in one click. Every emoji also gives you its Unicode code point, HTML entity, CSS content value, and JavaScript escape.

grinning face

Smileys & Emotion ยท U+1F600

503 emojis ยท click to copy

Searching by feeling, not just by name

Official emoji names are often not what anyone would type. ๐Ÿ˜‚ is formally face with tears of joy, but people search for lol or crying laughing. ๐Ÿคท is person shrugging, searched as idk. Each emoji here carries extra keywords alongside its Unicode name, so the informal word works.

Results are ranked rather than merely filtered: exact name matches come first, then names that begin with your query, then names that contain it, and finally keyword-only matches. Short queries therefore surface the obvious emoji at the top instead of burying it.

The four code formats

Pasting the character itself works nearly everywhere, but source files, databases, and templates sometimes need an escaped form. Selecting an emoji exposes each one.

FormatExample (๐Ÿ”ฅ)Where it belongs
Character๐Ÿ”ฅChat, docs, commit messages, UTF-8 source
Unicode code pointU+1F525Specs, bug reports, font tooling
HTML entity🔥HTML where the encoding is uncertain
CSS content"\\1F525"::before and ::after rules
JS string"๐Ÿ”ฅ"ASCII-only JavaScript or JSON

Why one emoji can be several characters

Many emoji are single code points, but plenty are sequences. ๐Ÿ‘จโ€๐Ÿ’ป is a man, a zero-width joiner, and a laptop โ€” three code points rendered as one glyph. Flags are pairs of regional indicator letters: ๐Ÿ‡ฐ๐Ÿ‡ท is the letters K and R. And โœŒ๏ธ carries a trailing variation selector that asks for the colorful presentation rather than a monochrome one.

This is why "๐Ÿ‘จโ€๐Ÿ’ป".length is 5 in JavaScript rather than 1, and why naive string truncation can split an emoji into fragments. Iterate with Array.from() or a forโ€ฆof loop, which walk code points, and reach for Intl.Segmenter when you need true user-perceived characters.

Tip: if a database rejects an emoji, the column is probably MySQL utf8, which caps at three bytes per character. Emoji need four. The fix is utf8mb4.

The same emoji looks different everywhere

Unicode standardizes the meaning of an emoji, never its artwork. Apple, Google, Microsoft, Samsung, and X each draw their own set, so what you send is not necessarily what the recipient sees. Some differences have been dramatic enough to change the tone of a message entirely โ€” the notorious case being ๐Ÿ”ซ, which shipped as a realistic revolver on some platforms and a green water pistol on others until vendors converged.

Newer emoji also take years to reach every device. A recipient on an older OS may see a blank rectangle where a recent emoji should be. For anything where legibility matters โ€” UI labels, marketing, alerts โ€” prefer emoji that have been in the standard for several years.

Accessibility and practical use

Screen readers announce an emojiโ€™s full Unicode name. Three ๐ŸŽ‰ in a row become โ€œparty popper, party popper, party popper,โ€ so repetition that reads as enthusiasm visually becomes noise aurally. A few practices keep emoji usable for everyone:

  • Put emoji at the end of a sentence or label so the meaningful text is announced first.
  • Never rely on emoji alone to carry status. Pair โœ… or โš ๏ธ with a word.
  • Hide decorative emoji with aria-hidden="true" when adjacent text already says the same thing.
  • Avoid emoji inside link text, where the announced name interrupts the destination.

Recently used emoji on this page are stored in your browser only. Nothing is uploaded, and clearing the list removes it from local storage.