Handy Orchard

Unicode text inspector

Inspect Unicode code points, UTF-16 units, UTF-8 bytes and runtime grapheme boundaries with explicit normalization.

Your input

Normalization creates a separate result. Compatibility forms can change meaning; original input is not overwritten.

Outputs are cleared when the input changes.

Result

Enter your data or use the example, then run the tool.

Worked example

é and e plus combining acute become equal under NFC normalization.

A family emoji has several code points but may be one grapheme in the runtime segmenter.

Method

Iterate Unicode code points and record UTF-16 positions/units and UTF-8 bytes.

String.normalize produces the chosen separate preview; Intl.Segmenter supplies runtime grapheme segmentation when available.

Limits

At most 10,000 code points and 1 MiB UTF-8. Unpaired surrogates are warned about rather than reported as replacement-byte counts.

No complete character-name database, confusable detection or font/glyph diagnosis. NFKC/NFKD are opt-in because compatibility normalization may change semantics.

Sources

Unicode UAX 15: normalization formsUnicode UAX 29: grapheme segmentation

Related tools

IDN Punycode converterUTF-8 Base64 converterURL query inspectorImage OCR

Your inputs stay on this device. Only optional, consented page visits are measured. Input values, files, filenames and processing logs are not sent to Analytics.

When switching languages, text, settings and selected files are temporarily kept on this device. Transfers are removed after restoring; interrupted transfers are cleaned up on a later visit. Inputs and files are never uploaded.