§

Paste or type

§

Metrics

Characters 0
Characters (no spaces) 0
Words 0
Sentences 0
Paragraphs 0
Reading time
Speaking time
§

Options

§

Most common words

# Word Count Frequency

Most online word counters were written when the web was English-first, and they still split text on ASCII whitespace. That breaks the moment you paste Chinese (no spaces between words), Arabic (right-to-left, joined letters), or Devanagari (vowel marks attached to consonants). This tool uses the browser's native Intl.Segmenter API, which carries Unicode CLDR's word-segmentation rules for every script the standard covers. A Chinese sentence reports one word-like segment per character, matching how Chinese editors actually count. Arabic counts each space-separated token while the character tile counts code points, so a ligature like لا still counts as two characters. For multilingual writers, translators, and anyone drafting documentation that ships in more than one language, the count you see here is the count a native-script reader would expect.

How are words counted?

This tool counts words using your browser's built-in Intl.Segmenter API (Chrome 87+, Firefox 125+, Safari 14.1+) when available, which handles every script — Latin, Chinese, Arabic, Devanagari, Japanese, Korean, Cyrillic — with linguistically accurate word boundaries derived from the Unicode CLDR. When Intl.Segmenter isn't available, it falls back to a Unicode-aware regular expression (/\p{L}+/gu) that matches any run of Unicode letters. Most competing tools split on ASCII whitespace and silently miscount anything outside the Latin alphabet; this one doesn't.

How counting works

Six steps happen in your browser on every keystroke. None of them touch the network. The whole pipeline runs in under a millisecond for typical paragraph-length input and handles a 100,000-word manuscript without dropping a frame.

  1. Your text is read from the textarea and held in browser memory — nothing leaves your device.
  2. Character count uses JavaScript’s spread operator ([...text].length) to count Unicode code points, so emoji like 🙂 count as 1 character regardless of their internal UTF-16 encoding.
  3. Word count relies on Intl.Segmenter with granularity: ‘word’, filtering to segments where isWordLike is true. Chinese and Japanese text where words are not space-separated count one segment per character.
  4. Sentence count uses Intl.Segmenter with granularity: ‘sentence’, which handles abbreviations, ellipses, and punctuation edge cases better than a simple period-split.
  5. Paragraph count splits on one or more blank lines (\n\s*\n) and filters empty segments.
  6. Reading and speaking times divide the word count by the configured WPM rate (defaults: 200 reading, 130 speaking) and format the result as minutes and seconds.

Why count words?

  • Essay and submission limits. University prompts cap personal statements at 650 words (Common App), 500 words (most UK UCAS personal statements), or 4,000 characters with spaces. Knowing your count before you submit means no last-minute cuts under pressure.
  • SEO and content planning. Search-quality teams use word count as a rough proxy for topical depth, and longform pages between 1,500 and 2,500 words consistently outrank thin posts for competitive queries. Tracking your count as you draft keeps drafts in that range without padding.
  • Social-media sizing. X caps posts at 280 characters, LinkedIn articles at 110,000, Instagram captions at 2,200, and meta descriptions at roughly 160. The character tile shows you the exact figure before you paste into the platform editor and discover it truncated.
  • Transcription and presentation estimates. Reading time at 200 WPM matches average silent reading; speaking time at 130 WPM matches conversational delivery. Use both to size a podcast segment, plan a 5-minute lightning talk, or estimate narration runtime before a recording session.

Common applications

Word and character counting shows up across writing, content, and development work, and the tool's Unicode-aware engine matters most for teams shipping content in more than one language:

  • Academic writing: track progress toward a thesis chapter target or verify that an abstract stays inside a journal’s character limit before submission.
  • Marketing and UX copy: measure a subject line, a hero headline, or a CTA button label against the character budget your designer set in Figma.
  • Speech writing and podcasting: convert a script to an expected duration so you know whether a keynote runs long before rehearsal day.

What does a word count example look like?

Take this three-paragraph sample. The quick brown fox jumps over the lazy dog. The sentence above is a pangram — it contains every letter of the English alphabet, which is why typographers and font designers use it to preview a typeface. Pangrams date back at least to the 19th century, when telegraph operators used short letter-complete sentences to test transmission accuracy. Today they show up in font specimens, keyboard tests, and the default placeholder text of every design app from Figma to InDesign. Paste that into the input and the metrics tiles report: 71 words, 410 characters with spaces, 340 characters without spaces, 4 sentences, 3 paragraphs, reading time of about 21 seconds at 200 WPM, and speaking time of about 33 seconds at 130 WPM. The most-common-words panel skips stopwords like the and a and surfaces the content words that dominate — here, pangram, letter, and sentence. Switch to Chinese, Arabic, or Hindi text and every tile recalculates against the script's own segmentation rules.

How are words counted?

In browsers that support Intl.Segmenter (Chrome 87+, Firefox 125+, Safari 14.1+) the tool uses new Intl.Segmenter(locale, { granularity: ‘word’ }) and counts segments where isWordLike is true. This handles Chinese, Japanese, Arabic, Devanagari, and every other Unicode script correctly. In older browsers the fallback regex /\p{L}+/gu matches any run of Unicode letters, which works well for Latin-script languages but treats an entire Chinese or Japanese word as one segment regardless of the absence of spaces.

Why is the count different from MS Word?

Microsoft Word’s word-count algorithm is proprietary and handles hyphenated compounds, contractions, and special characters differently across versions. This tool counts “won’t” as one word (one isWordLike segment), while Word may count it as two. For most prose the counts agree within 1–2%; for hyphenated text they can diverge more. The character counts always agree when the source text is the same UTF-8 string.

Does this support non-Latin scripts (Chinese, Arabic, Cyrillic)?

Yes. The Intl.Segmenter API is Unicode-aware by design. Arabic and Hebrew (right-to-left scripts) count correctly; Cyrillic and Greek count as normal Latin-style word-boundary splits; Chinese and Japanese report one word-like segment per character because those writing systems do not use spaces between words. The character count (using [...text].length) always counts Unicode code points regardless of script, so emoji, CJK characters, and accented Latin characters all count as 1.

Is my text uploaded?

No. Every calculation runs inside your browser tab using native JavaScript APIs. Nothing is sent to Ultim8Soft’s servers or any third-party service. You can verify this by opening browser DevTools, switching to the Network tab, clearing the log, typing into the input, and confirming that zero network requests appear for the counting step.

This word counter runs entirely in your browser. No upload, no account, no vendor library, no analytics on the counted text. Paste any text in any script, watch the seven metric tiles update as you type, and copy what you need. The whole tool is roughly 12 KB of JavaScript that loads once and works offline after the first visit.