String inspector

← All tools

Paste any string to see why JavaScript’s .length disagrees with what you see — code points, graphemes, UTF-8 bytes, and invisible characters.

Your data never leaves the browser — inspection runs locally.

Input

Counts

UTF-16 code units (.length)
Unicode code points
Grapheme clusters
UTF-8 bytes

Script mixing

Hidden characters

Clean copy strips zero-width chars, BOM, and most control chars; NBSP becomes a normal space.

Character breakdown

#GraphemeCode point(s)UTF-8 (hex)Notes

About this tool

JavaScript strings are UTF-16. Surrogate pairs (emoji, many CJK characters) count as two “characters” in .length but one visible glyph. Intl.Segmenter approximates user-perceived grapheme clusters — what you'd count when moving the cursor with arrow keys.

Hidden whitespace and homoglyphs cause real bugs: copy-pasted URLs that 404, usernames that look identical but don't match, JSON that parses on one machine but not another.

Read more

Free books, courses, and software

Get my programming books, course editions, and complete software.

Get the download library →