SuperDevTools

Unicode converter and character lookup

Analyze text character by character

Paste or type some text: every character is listed with its code point, Unicode name, bytes and escape sequences. Invisible and look-alike characters are flagged.

Try:
Visible characters (graphemes)
0
Code points
0
UTF-16 code units
0
UTF-8 bytes
0

Invisible or misleading characters

No invisible or misleading characters found.

    Character-by-character breakdown

    # Character Code point Unicode name Category UTF-8 UTF-16

    Convert both ways

    Type in any field and the others update. Codes can be separated by spaces; U+, 0x, %, \x and named entities such as é are accepted.

    Normalize: NFC, NFD, NFKC, NFKD

    The four normalization forms of the text analyzed above. NFC composes accented letters, NFD splits them; NFKC and NFKD also replace compatibility variants (ligatures, superscripts, special spaces).

    NFC canonical composition

    Code points :

    NFD canonical decomposition

    Code points :

    NFKC compatibility composition

    Code points :

    NFKD compatibility decomposition

    Code points :

    Find a character

    Searches the official Unicode names plus a few common keywords: euro, arrow, heart, check mark, quote, nbsp…

    Special characters by theme

    Click a character to copy it. It is also added to the “Picked characters” box.

    Everything runs in your browser: nothing is sent anywhere.

    Look up the code behind every character

    This Unicode converter breaks text down one character at a time: code point, official Unicode name, block, category, UTF-8 and UTF-16 bytes, HTML entities and escape sequences for JavaScript, CSS, Python and URLs. It also flags invisible and look-alike characters, converts in both directions, normalizes text and finds special characters by name. Everything runs in your browser: nothing is sent.

    How to use it

    1. Paste your text into “Text to analyze”. The counters show “Visible characters (graphemes)”, “Code points”, “UTF-16 code units” and “UTF-8 bytes”.
    2. In the table, click any code point to open “Character details”, where every value has its own “Copy” button.
    3. Check the “Invisible or misleading characters” box, then use “Remove invisible characters”, “Replace special spaces” or “Replace homoglyphs with Latin letters”.
    4. In “Convert both ways”, type in any field: U+1F600 gives 😀, ☺ gives ☺, é and C3 A9 both give é.
    5. “Find a character” searches by name or keyword: “euro” returns €. The “Special characters by theme” palette copies a character in one click.

    Code points and encodings in plain words

    Unicode gives a unique number to almost 150,000 characters. That number, the code point, is written in hex after “U+”: é is U+00E9, the pound sign £ is U+00A3, the emoji 😀 is U+1F600. To store it in a file, an encoding turns the number into bytes. In UTF-8, the standard on the web, a plain English letter takes 1 byte, £ takes 2 (C2 A3), € takes 3 (E2 82 AC) and an emoji 4 (F0 9F 98 80). UTF-16, used inside JavaScript, Java and Windows, counts 16-bit units: £ fits in one (00A3), 😀 needs two (D83D DE00). That is why a single emoji has a length of 2 in JavaScript.

    Why “é” can be written two ways

    The letter in “café” can be one code point (U+00E9) or a plain e followed by a combining acute accent (U+0065 U+0301). On screen they look identical; to a computer they are different strings; a search may miss a match. Normalization fixes this: NFC composes, NFD decomposes. NFKC and NFKD go further and replace compatibility forms, so the ligature fi becomes “fi” and the superscript ² becomes 2.

    Composed emoji

    👍🏽 is 2 code points, the thumb and a skin tone modifier, for 8 UTF-8 bytes. The family 👨‍👩‍👧 is 5 code points: three people joined by two zero width joiners (U+200D), 18 bytes in total. The tool groups them into graphemes, what a reader sees as one character.

    Invisible characters and the trouble they cause

    The zero width space U+200B, the joiners U+200C and U+200D, the byte order mark U+FEFF and the direction marks U+200E and U+200F take up no room on screen. Pasted from elsewhere, they make two equal-looking strings compare as different, turn a password you typed correctly into a wrong one, or break code. Non-breaking spaces (U+00A0) can also upset a spreadsheet formula. The tool shows exactly where each one sits.

    Homoglyphs and phishing

    The Cyrillic “р” (U+0440) and “а” (U+0430) look exactly like Latin p and a. Written with them, “раssword” is not “password”, and a fake username or web address can slip past a quick glance. The tool flags such letters when they are mixed into Latin text. It catches the common cases, not every trick, so if a link looks suspicious, type the address yourself.

    Typing a special character

    Depending on your system, you can hold a key to pick an accented variant, enter a numeric code on the keypad, open a character viewer, or type the hex code after a dedicated shortcut. Copying the character from this page is often quicker.

    FAQ

    Why does “naïve” take 6 bytes?

    In UTF-8, ï takes 2 bytes, so 5 characters become 6 bytes.

    Can I search in plain English?

    Yes. The search reads the official Unicode names for common blocks, plus shortcuts such as tick, quote or nbsp. Characters outside the built-in table still show their block and category.

    What does “Remove invisible characters” delete?

    Zero width characters, direction marks and control characters, except tabs and line breaks. Joiners inside a composed emoji are kept, so the emoji stays whole.

    Is my text sent anywhere?

    No. Everything happens in your browser. Text under 20,000 characters is kept in local storage so it is there on your next visit.