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.
| Format | Example (๐ฅ) | Where it belongs |
|---|---|---|
| Character | ๐ฅ | Chat, docs, commit messages, UTF-8 source |
| Unicode code point | U+1F525 | Specs, 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.