About the Character & Byte Counter
This counts your text four ways at once — characters, UTF-8 bytes, words and lines — with the byte size being the part most tools skip. Developers and technical writers need it when something is measured in bytes rather than characters: a database column with a byte limit, an API field cap, a meta description budget, a config value, or a JSON payload. Seeing characters and bytes side by side makes it obvious when non-ASCII content is quietly eating extra space.
Just need a plain word/character count without the byte details? Try the Word Counter.
How it works
- Characters counts Unicode code points, so most emoji and accented letters count as one.
- Bytes (UTF-8) encodes the text as UTF-8 and measures the actual byte length — the real size the text occupies in a file, database or network request.
- Words splits on whitespace.
- Lines counts newline-separated lines.
Everything updates live as you type or paste.
Assumptions and behaviour
- Byte count is UTF-8, the dominant encoding for the web, files and most databases. In UTF-8, plain ASCII characters are 1 byte each, common accented and Greek/Cyrillic letters are 2 bytes, most other scripts 3 bytes, and many emoji 4 bytes or more.
- Characters are counted as code points, which is why a string can have far more bytes than characters when it contains non-ASCII content.
- Words are whitespace-separated; a trailing newline still counts as ending a line.
Limitations
- Character count is code points, not grapheme clusters. Some emoji are built from several code points (skin-tone variants, flags, family emoji), so they can count as more than one "character" even though they render as a single glyph.
- The byte figure is UTF-8 specifically. Other encodings differ — UTF-16 (which JavaScript uses internally) and legacy encodings would give different byte counts.
- SMS length isn't the same as UTF-8 bytes. Texting uses GSM-7 or UTF-16 segmentation, so use this as a general size guide, not an exact SMS-segment counter.
- It measures size; it doesn't validate or transform the text. To actually encode the text (not just measure it), see Base64 Text Encoder.
Privacy
Counting runs entirely in your browser. Your text is never uploaded or stored.

