Prepare the input
Paste the exact caption, title, message, identifier, or database value. Preserve spaces and line breaks when the target counts them, because both contribute to the total character measurement.
Measure visible text and encoded size
Count user-perceived characters, characters without whitespace, UTF-8 bytes, and lines locally, including safer handling for emoji and combined letters.
Counting and transformations run locally. Nirmion does not send the text in this workspace to an API.
Product guide
Paste the exact caption, title, message, identifier, or database value. Preserve spaces and line breaks when the target counts them, because both contribute to the total character measurement.
The main total counts grapheme clusters. The no-space metric removes all whitespace before counting. UTF-8 bytes are calculated with TextEncoder and can be larger than the visible count for non-ASCII scripts and emoji.
Match the relevant metric to the destination documentation. A platform that says characters may use UTF-16 code units rather than graphemes, so test the final value there when one character can determine acceptance.
How it works
Intl.Segmenter with grapheme granularity groups base letters with combining marks and keeps supported emoji sequences together. A code-point fallback is used where segmentation is unavailable. Whitespace-free counting removes Unicode whitespace, and UTF-8 size is generated from the exact source string rather than estimated from visible symbols.
Useful when
Character measurement is useful anywhere a concise field, transport format, or encoded payload has a hard boundary.
Questions answered
Practical boundaries matter with text tools. These answers explain what is measured, what is retained, and when a manual review is still needed.
ASCII characters usually occupy one UTF-8 byte, while many accented letters, non-Latin scripts, and emoji require multiple bytes. A joined emoji can also contain several encoded code points while appearing as one grapheme.
The main character total includes them. A separate metric removes whitespace first. Lines are also reported, allowing you to choose the value that matches the receiving field documentation.
Not always. Platforms can apply weighted URL lengths, normalize text, or count UTF-16 units. Use this as a transparent preflight and confirm edge cases in the destination composer.
Privacy and retention
Nirmion performs these operations with browser JavaScript. The workspace does not call the catalogue API with your source text, and completed-job content is kept only in this component memory for re-download.
A downloaded file remains in your browser downloads, device storage, backups, and any location where you share it. Clear or close the page when working on a shared device, and avoid pasting secrets into extensions or third-party clipboard managers.
Tool details
Nirmion Character Counter measures user-perceived grapheme clusters rather than blindly reporting JavaScript string length. It also reports a whitespace-free character count, UTF-8 encoded bytes, and line count. This combination is useful for writers, developers, localization teams, and anyone preparing copy for a constrained field.
The measurement runs locally for text up to 500,000 characters and can be downloaded as text_nirmion_tools_character_report.txt. Because external services may count code units or weighted content differently, the result should be compared with the final platform when the limit is strict.