Emoji and combined Unicode sequences make character counting more nuanced.
Quick answer
Counts can differ between JavaScript string length, UTF-8 bytes and user-perceived grapheme clusters.
Utf-8
Counts can differ between JavaScript string length, UTF-8 bytes and user-perceived grapheme clusters. In this context, utf-8 matters because the output should match the task rather than simply produce a file or string. Review the result against the original input and keep an untouched copy when the workflow changes a file.
Code Units
Counts can differ between JavaScript string length, UTF-8 bytes and user-perceived grapheme clusters. In this context, code units matters because the output should match the task rather than simply produce a file or string. Review the result against the original input and keep an untouched copy when the workflow changes a file.
Graphemes
Counts can differ between JavaScript string length, UTF-8 bytes and user-perceived grapheme clusters. In this context, graphemes matters because the output should match the task rather than simply produce a file or string. Review the result against the original input and keep an untouched copy when the workflow changes a file.
Practical example
Use the matching Get Tools Lab Character Counter tool with a small, non-sensitive example first. Confirm the expected result before using a larger or important input.
Privacy and limitations
Processing behavior depends on the tool. Priority browser-local tools identify that behavior on the tool page. A local browser workflow reduces server upload exposure, but it does not remove the need to protect the source file, device and downloaded result.
Related workflow
Open Character Counter. You can also use the related comparison, glossary and topic pages to understand the format and trade-offs.