What it does
Two tools in one:
- Emoji / text → codes — paste any text or emoji and get its Unicode code point(s), HTML entity, UTF-16 (JS escape), and raw UTF-8 byte representation.
- Emoji picker — search every standard emoji (3,700+, straight from the official Unicode emoji list) by keyword (e.g. "heart", "fire", "check", "cat", "flag") and click one to copy it or insert it into the converter above.
Try it
How it works
- Code point: JavaScript strings are UTF-16 internally, but this tool iterates using
Array.from(text)/for...of, which correctly splits by Unicode codepoint (important for emoji, which are often outside the Basic Multilingual Plane and made of surrogate pairs). Each codepoint's value is read withcodePointAt()and shown asU+XXXX. - HTML entity: the decimal codepoint wrapped as
&#DEC;, which any browser/HTML renders back into the original character. - UTF-16 escape: the raw JS string escape (
\uXXXX, or a surrogate pair\uXXXX\uXXXXfor characters outside the BMP) — useful when hardcoding emoji in JSON/JS source safely as ASCII. - UTF-8 bytes: the character is encoded with
TextEncoderand each byte is shown in hex — this is the actual byte sequence you'd see on the wire or in a UTF-8 encoded file. - Emoji picker: built from the official Unicode
emoji-test.txtdata file — every fully-qualified emoji is included (all groups: smileys, people & body, animals & nature, food & drink, travel & places, activities, objects, symbols, and flags) with keywords derived from its official name and category. Typing filters the list live; clicking an emoji copies it to your clipboard (and drops it into the converter above).
Everything runs locally in your browser — nothing is sent anywhere.