Skip to main content

Emoji to Unicode Converter — Code Points Both Ways

Emoji ⇄ Unicode code points, both ways. U+XXXX, decimal, HTML entity, JS and CSS escapes, every code point of a ZWJ family, skin tone or flag, plus one-click restore, all in your browser

  • Runs locally
  • Category Developer & DevOps
  • Best for Formatting, validating, shrinking, or inspecting code-adjacent text.

Breakdown appears here.

What this tool does

A free emoji to Unicode converter that turns any emoji into its code points and any code point back into the emoji. Paste 😀 and read its single code point U+1F600, the decimal 128512, the HTML entity 😀, the JS escape \u{1F600} and the CSS escape \1F600 side by side. Many emoji are not one code point at all. A family 👨‍👩‍👧‍👦 is seven code points joined by the zero-width joiner U+200D, a waving hand with a skin tone 👋🏽 is a base plus a modifier, and a flag 🇯🇵 is two regional-indicator letters. This tool splits every grapheme into the exact code points it really contains, so you see the whole sequence rather than a mystery box. Going the other way, paste U+1F600, \u{1F600}, 😀, 😀, 0x1F600 or even raw surrogate escapes like 😀 and it rebuilds the emoji. Copy any single form or the whole U+ run. Everything runs in your browser, nothing is uploaded, and a shareable link reproduces your exact input and direction.

Tool details

Input
Text + Numbers
The page exposes text boxes, numeric controls, file pickers, or structured inputs depending on the tool.
Output
Live result + Copy
The result area focuses on usable output, with copy, download, or preview actions when supported.
Privacy
Browser-side processing
The main tool logic does not call an external API, so inputs normally stay in the current tab.
Save / share
Shareable URL state
Key settings are encoded in the URL so another person can reopen the same setup.
Performance budget
Initial JS <= 9 KB
No WASM budget is declared, keeping the tool quick to open on mobile.
Best fit
Developer & DevOps · Developer
Category and role tags drive related tools, internal links, and quick fit checks.

How to use

  1. 1. Input

    Paste or drop your content into the tool panel.

  2. 2. Process

    Click the button. All processing is local in your browser.

  3. 3. Copy / Download

    Copy the result or download to disk in one click.

How Emoji to Unicode Converter fits into your work

Use it in the small gaps between coding, reviewing, debugging, and shipping.

Developer jobs

  • Formatting, validating, shrinking, or inspecting code-adjacent text.
  • Preparing snippets for documentation, tickets, commits, or handoff.
  • Checking a small payload quickly without switching tools.

Developer checks

  • Run irreversible transforms like minify or obfuscate on a copy.
  • Keep secrets out of pasted snippets unless the tool explicitly stays local.
  • Use your normal tests or linter before shipping transformed code.

Good next steps

These links move the current task into a more complete workflow.

  1. 1 Unicode Escape Converter Text ⇄ Unicode escapes — \uXXXX, \u{1F600}, &#128512;, CSS \1F600 — emoji + CJK done right, browser-only Open
  2. 2 Unicode Character Inspector Inspect any text character-by-character: code points, UTF-8/UTF-16 bytes, HTML entities, JS escapes, names, and hidden zero-width / confusable glyphs. Open
  3. 3 Emoji Finder Unicode 15.1 / 1500+ emojis with bilingual search — one-click copy, browser-only Open

Real-world use cases

  • Embed an emoji safely in source code

    You want a 😀 in a string but your editor or build step mangles raw emoji bytes. Paste it, copy the JS escape \u{1F600}, and drop it into your string literal where it survives any encoding. The CSS escape \1F600 does the same for a content property, and the HTML entity &#x1F600; for markup. One paste gives you the right notation for wherever the emoji has to live.

  • Debug why a ZWJ emoji renders as separate pieces

    A family emoji 👨‍👩‍👧‍👦 is showing up as four separate people on an old device. Paste it and see the seven code points with U+200D joiners between them, then confirm the joiners survived in your data. If the U+200D characters were stripped, that is exactly why the sequence fell apart into individual people, and now you can prove it byte by byte.

  • Build the HTML entities for a flag or skin-tone emoji

    A flag 🇯🇵 has no single entity, so you need both regional indicators. Paste it, read U+1F1EF and U+1F1F5, and copy the HTML fields to write &#x1F1EF;&#x1F1F5; directly in your page. The same works for a skin-toned hand 👋🏽, where you get the base U+1F44B plus the modifier U+1F3FD and can adjust the tone by swapping the second entity.

  • Restore an emoji from a code point you found in a log

    A log line or a JSON dump shows \u{1F600} or U+1F600 but not the actual glyph. Switch to Unicode → Emoji, paste the code point in whatever notation you have, and read the emoji back. Paste a whole run of code points and it rebuilds the original sequence, so an escaped family or flag becomes a readable emoji again.

Common pitfalls

  • Treating a multi-code-point emoji as one character. A ZWJ family or a flag spans several code points, so splitting a string with naive indexing cuts an emoji in half. The 👨‍👩‍👧‍👦 family is seven code points; use the whole sequence, not just the first one, when storing or comparing.

  • Dropping the zero-width joiner U+200D. The U+200D characters are what hold a ZWJ sequence together. If a sanitizer or a copy step strips invisible characters, 👨‍👩‍👧‍👦 collapses into four separate people. Keep every U+200D, and check for them here when a combined emoji falls apart.

  • Using charCodeAt or a UTF-16 length to count emoji. A single emoji above U+FFFF takes two UTF-16 units, so charCodeAt returns half of a surrogate pair and length over-counts. Use codePointAt or an Intl.Segmenter grapheme split, which is exactly how this tool reads the code points.

Privacy

Splitting an emoji into code points and rebuilding one from code points both happen entirely in your browser tab with plain JavaScript and Intl.Segmenter. No emoji, code point or result is ever uploaded, and nothing is logged. The one caveat: the shareable link encodes your input and direction into the URL query string, so a link pasted into chat will record that text in the recipient server's access log. For anything sensitive, use the copy button and paste the result rather than sharing the URL.

FAQ

Tool combos

Folks in your role tend to reach for these alongside this tool.

Made by Toolora · 100% client-side · Updated 2026-05-29