DevTools Logo

Unicode Character Inspector

Unicode Character Inspector

Analyze Unicode characters with detailed information

Input Text

    Examples

    Inspect Basic Latin A

    Input
    A
    Output
    Code point: U+41 (decimal 65)
    UTF-8: 41
    UTF-16: 0041
    UTF-32: 00000041
    HTML decimal: A
    HTML hexadecimal: A
    URL encoded: A

    ASCII code points have the same single-byte UTF-8 value and do not require percent encoding.

    Inspect the euro sign

    Input
    Output
    Code point: U+20AC (decimal 8364)
    UTF-8: E2 82 AC
    UTF-16: 20AC
    UTF-32: 000020AC
    HTML decimal: €
    HTML hexadecimal: €
    URL encoded: %E2%82%AC

    The euro sign occupies three UTF-8 bytes but one UTF-16 code unit.

    Inspect a supplementary-plane emoji

    Input
    😀
    Output
    Code point: U+1F600 (decimal 128512)
    UTF-8: F0 9F 98 80
    UTF-16: D83D DE00
    UTF-32: 0001F600
    HTML decimal: 😀
    HTML hexadecimal: 😀
    URL encoded: %F0%9F%98%80

    U+1F600 needs four UTF-8 bytes and a UTF-16 surrogate pair, but remains one selected code point in the interface.

    About this tool

    Unicode Character Inspector splits text by Unicode code point and lets you select each resulting character for inspection. It reports the numeric code point, an approximate general category and block, display width, emoji flag, UTF-8 bytes, UTF-16 code units, UTF-32 value, URL encoding, and several HTML, CSS, JavaScript, Java, and Python escape forms.

    The built-in samples cover emoji, Latin text, symbols, arrows, mathematics, CJK, Arabic, and combining marks. Every representation can be read in one place, and the encoding values or escape forms can be copied for debugging source files, payloads, and rendering issues.

    The category, block, width, emoji, bidirectional, and escape calculations are hand-written approximations rather than a complete Unicode Character Database implementation. The field displayed as a character name is the block name, and supplementary-plane escape forms may need language-specific correction before use in source code.

    How to use

    1. Enter text or load a sample

      Paste any text into the editor or choose one of the Emoji, Latin, Symbols, Arrows, Math, CJK, Arabic, or Combining samples.

    2. Select a code point

      Click a character chip to inspect it. Supplementary characters such as emoji are kept together by Array.from rather than split into surrogate halves.

    3. Compare encodings

      Read the UTF-8 bytes, UTF-16 code units, UTF-32 value, and percent-encoded form in the Encodings card.

    4. Copy an escape representation

      Open the HTML, CSS, JavaScript, Java, or Python tab and copy the generated representation, checking language rules for supplementary code points.

    Use cases

    Debug mojibake and encoding mismatches

    Compare expected UTF-8 bytes with the code point actually present in a copied string or payload.

    Distinguish look-alike characters

    Inspect visually similar letters, punctuation, and whitespace to reveal different numeric code points.

    Analyze emoji and surrogate pairs

    See how a supplementary-plane symbol maps to one code point, four UTF-8 bytes, and two UTF-16 code units.

    Prepare escaped literals

    Copy HTML numeric references, CSS escapes, percent encoding, or source-language escapes as a starting point for test data.

    Common mistakes

    Mistake:Treating the displayed block name as the official Unicode character name.

    Fix:The current name field repeats an approximate block label. Consult the Unicode Character Database for the normative character name and properties.

    Mistake:Assuming every reported category, width, bidi value, or emoji flag is normative.

    Fix:Those properties come from simplified ranges and defaults. Verify production-sensitive behavior against current Unicode data.

    Mistake:Copying a supplementary-plane JavaScript, Java, or Python escape without checking syntax.

    Fix:The generated \u form is not guaranteed to be valid for code points above U+FFFF; use the language's code-point syntax or a correct surrogate pair.

    Mistake:Confusing code points with user-perceived characters.

    Fix:Combining marks and emoji sequences can contain several code points but render as one grapheme cluster; inspect every selector chip in the sequence.

    Frequently asked questions

    References & standards