Toolora

Word & Character Counter

Counts words, characters, sentences and reading time as you type — including Thai, which most counters get badly wrong.

Words
0
Characters
0
Characters (no spaces)
0
Sentences
0
Paragraphs
0
Lines
0
Reading time
0
Speaking time
0
For developers
Unicode code points
0
UTF-16 code units
0

Your text stays in this tab. Nothing is uploaded.

Why most word counters cannot count Thai

Thai is written without spaces between words. A sentence like “สวัสดีครับผมชื่อโทลอร่า” is one unbroken run of characters, even though a reader sees six or seven separate words.

Almost every word counter on the web splits text on spaces. Given that sentence it reports one word. For a Thai document of any length the number is not slightly off — it is meaningless, because it is really counting the spaces a writer happened to leave between phrases.

This tool uses your browser’s built-in Unicode segmentation, which carries a Thai dictionary and finds the real word boundaries. The same machinery handles Japanese, Chinese and Khmer, which have the same problem.

It is not infallible. Words missing from the dictionary — brand names, slang, transliterations — get split at plausible-looking but wrong points. “โทลอร่า” is a good example: it is one word to a reader and three to the segmenter. Expect it to be close rather than exact on text full of proper nouns.

Why two tools disagree about your character count

There are three defensible answers to “how many characters is this?”, and different tools quietly pick different ones.

Take the family emoji 👨‍👩‍👧‍👦. A reader sees one character. It is built from seven Unicode code points joined by invisible glue. Stored as UTF-16 it occupies eleven code units — and `"👨‍👩‍👧‍👦".length` in JavaScript returns 11.

This tool shows one character, because that is what a person means. The other two figures are under “For developers”, because when you are checking whether a value fits a database column or an API limit, the code-unit count is the one that matters.

Thai has a quieter version of the same problem. Vowels and tone marks are separate code points that stack onto a consonant: “กิ” is one character to read and two to store.

Limits worth knowing

X / Twitter post
280 characters
SMS, Latin text (GSM-7)
160 characters
SMS, Thai or emoji (UCS-2)
70 characters
Meta description
~155 characters before truncation
Page title
~60 characters before truncation

Common questions

Why does one Thai SMS only hold 70 characters?
SMS uses a compact 7-bit alphabet called GSM-7 that only covers Latin characters, fitting 160 into one message. The moment a message contains Thai — or an emoji, or a curly quote — the whole thing switches to UCS-2 encoding, and the limit drops to 70 characters for the entire message, not just the Thai part. One stray emoji in an English message costs you 90 characters.
How accurate is the reading time?
Treat it as a rough guide. It assumes about 200 words per minute for Latin text, the long-standing publishing convention, adjusted upward for Thai because Thai words segment shorter than English ones. Real reading speed varies by a factor of three between people and depends heavily on the material, so use it to tell a two-minute read from a twenty-minute one, not to plan a schedule.
Why is the sentence count marked approximate for Thai?
Thai traditionally ends a sentence with a space rather than a full stop, but it also uses spaces around phrases, numbers and conjunctions. Nothing in the text distinguishes the two, so counting every space over-counts and counting only full stops under-counts. We show the conservative figure and flag it rather than present a guess as fact.
Does “well-known” count as one word or two?
Two. The counter follows the Unicode standard for word boundaries, which treats a hyphen as a break, so “well-known” is two words while “don’t” stays one. Most word processors apply the same rule, so the numbers should line up with what you see elsewhere.
Is my text sent anywhere?
No. The counting runs in your browser using JavaScript that arrived with the page. There is no server involved, which you can verify by disconnecting from the internet after the page loads — the tool keeps working. Nothing is stored, so nothing can be recovered later either.
Is there a size limit?
The tool counts the first 500,000 characters and tells you when it has truncated. That is roughly a 300-page book, well past any normal paste, and the cap exists so an accidental drop of a huge file cannot lock up your browser tab.