Text Tools

Unicode Inspector

Inspect text one code point at a time. See Unicode categories, UTF-16 escapes and UTF-8 bytes, with flags for spaces, controls and default-ignorable characters. Everything stays on your device.

Your content stays on your device Free, with no account
See the characters behind your text Local processing
Up to 10,000 UTF-16 text units. Line endings normalize to LF.
TEXT AT A GLANCE

Ready. Inspect text to see each code point.

A visible character can contain several code points. Spaces, controls, format characters and default-ignorable code points are flagged for review; this does not mean they are unsafe.

A FEW SIMPLE STEPS

How to use Unicode Inspector

  1. Paste text to inspect, or load the example with emoji, a combining accent and special spacing.
  2. Select Inspect text to see code point, UTF-16, UTF-8 and grapheme counts.
  3. Review the paginated code point table. Preview labels replace controls and default-ignorable characters; combining marks use a dotted circle.
  4. Copy or download the full report, including all pages. Editing the input clears old results.
PRIVATE BY DESIGN

Why use this tool?

Your text is inspected entirely in your browser without uploads, dependencies, accounts or input storage. Controls and formatting characters are represented by labels in the results, and exported character values use ASCII UTF-16 escapes so hidden direction changes do not affect the report.

Tool inputs stay in your browser. Only your theme preference is saved on this device.

A few things worth knowing

Why do the character counts differ?

JavaScript strings use UTF-16 units. A supplementary code point such as many emoji uses two units. A visible grapheme cluster can contain multiple code points, such as a base letter plus a combining accent or a joined emoji sequence. Grapheme segmentation uses Intl.Segmenter when available and is otherwise marked unavailable.

Does this show every Unicode character name?

No. General categories come from your browser’s Unicode property data. Common descriptive labels are supplied for selected spaces, controls and formatting characters. This tool does not bundle a complete Unicode character-name database, block lookup or script detector. Font rendering and your browser’s Unicode version affect previews and classification.

What do flagged characters mean?

All separator and other-category code points, plus default-ignorable code points, are flagged for review. This includes spaces, controls, format characters, private-use and unassigned values. Flags do not imply danger or unwanted text. Some marks such as variation selectors and joiners are essential to correct writing and emoji presentation. No characters are removed or normalized, except CRLF and CR line endings becoming LF as in browser textareas.

How are surrogate pairs and invalid UTF-16 handled?

Valid surrogate pairs appear as one code point with two UTF-16 units. An unpaired surrogate is labeled explicitly and is not a Unicode scalar value. TextEncoder replaces it with U+FFFD when producing UTF-8, so its displayed bytes are EF BF BD; this does not change the inspected input. The UTF-16 escape and hex columns retain the original unit.

How do pagination and reports work?

The table shows 50 code points per page, with one-based positions and zero-based UTF-16 offsets. Copy and TXT download include every row, not just the current page. Escaped values use one backslash-u hexadecimal escape per UTF-16 unit. Reports contain the inspected text in escaped form, so treat them with the same care as your original.

What are the limits and privacy settings?

Input accepts up to 10,000 UTF-16 units after line-ending normalization. Larger input gives an error without truncation or a partial result. Clear empties input and results. Input is not uploaded or saved in browser storage. Only the site’s theme preference is stored.