Real-Fruit-Snacks

Character Analyzer

Paste text and see every character classified — case, digits, symbols, whitespace — with Unicode code points.

Paste or type below — analysis runs live. The summary counts everything; the table details the first 5,000 characters.

characters & unicode 101

What is a character, really?

Computers don't store letters — they store numbers. Unicode is the agreement about which number means which character: every character gets a code point, written U+ plus its hex value. A is U+0041 (decimal 65), is U+20AC, and 😀 is U+1F600. Unicode has room for over a million code points, of which about 150,000 are assigned so far — covering every living script, historic writing systems, symbols, and emoji.

Categories

Every code point carries a general category — that's what the colored badges in this tool show:

categoryexamplesunicode classes
uppercase letterA Ç ΩLu
lowercase lettera ç ωLl
letter (other)漢 ا अ — scripts without caseLo, Lt, Lm
digit0-9 ٣ 7Nd
punctuation. , ! — « »P*
symbol+ € ✓ 😀 (yes, emoji are symbols)S*
whitespacespace, tab, newline, no-break spaceZ*, tab/CR/LF
controlbell, null, escape — invisible machine codesCc, Cf

Code points vs. bytes vs. what you see

Three layers are easy to confuse:

  • Bytes depend on the encoding. In UTF-8, A is 1 byte, is 3, and 😀 is 4. In JavaScript's UTF-16 strings, 😀 takes two 16-bit units (a "surrogate pair") — which is why naive length counts call it 2. This tool counts real code points, so it's 1.
  • Code points are what this tool shows — the Unicode numbers.
  • What you see (a grapheme) can be several code points: é can be one code point (U+00E9) or two (e + combining accent U+0301), and family emoji like 👨‍👩‍👧 are multiple emoji glued with invisible zero-width joiners. Paste one in and watch it decompose.

Why this matters

  • Invisible characters — no-break spaces (U+00A0), zero-width spaces, and BOMs break parsers, diffs, and copy-pasted commands. If a config file "looks right" but won't parse, paste it here.
  • Homoglyphs — Cyrillic а (U+0430) looks identical to Latin a (U+0061). Phishing domains and sneaky identifiers exploit this; the code points never lie.
  • Data cleaning — smart quotes vs straight quotes, en-dash vs hyphen, full-width digits from CJK input: all visible instantly here.