Favorite places of your favorite city
Home
Add to preferred sources on Google

Character Counter

Paste or type your text to see its length, most frequent words and estimated reading time. Everything is calculated in your browser, including emoji and accented characters.

Analyze your text

Live results

Characters

0

Characters without whitespace

0

Whitespace

0

Words

0

Reading time

0 min

Estimate at 200 words/min.

Speaking time

0 min

Estimate at 130 words/min.

Sentences

0

Paragraphs

0

Lines

0

UTF-8 size

0 bytes

Word density

The 25 most frequent words, with counts and a share of all words. Uppercase and lowercase forms are grouped; common words and numbers are included.

Add text to see word density.

Your text is analyzed in this browser only. It is not uploaded, saved, or sent anywhere.

Character categories

Each non-whitespace grapheme is counted once. The first match wins: emoji sequences, numbers, Latin, Cyrillic, Arabic, Han, Hiragana, Katakana, Hangul, other letters, then punctuation/symbols. Unclassified characters go in “Emoji and other”. Script categories describe writing systems, not spoken languages; Han characters are used in several languages.

Add text to see its character categories.

How to use the counter

  1. Paste or type text into the field.
  2. Check character, word, sentence, paragraph and line totals, then review the reading and speaking estimates. The UTF-8 result shows the text’s encoded size.
  3. Use the category breakdown when you need to understand mixed writing systems.

Features

  • Counts visible characters, words, lines and UTF-8 bytes
  • Shows reading estimates and word frequency
  • Breaks down characters by writing system
  • Separately counts whitespace and characters without it
  • Shows sentence and paragraph totals with speaking estimates

Use cases

  • Check a form or editorial word limit
  • Review structure in a multilingual draft
  • Plan the length of a presentation script
  • Spot repeated terms before publishing

How the results are counted

Characters are Unicode grapheme clusters: an accented letter or a family emoji can count as one character even when it contains several code points. The total includes whitespace. It measures text characters, not how many glyphs a particular font draws.

Whitespace includes spaces, tabs, non-breaking spaces and Unicode line separators. A CRLF pair counts as one whitespace character and one line break. LF, CR, NEL, and Unicode line and paragraph separators also start a new line. Empty text has zero lines; a final line break adds an empty line.

When available, the browser’s Intl.Segmenter finds word boundaries for the selected language, including languages such as Chinese that do not separate words with spaces. Without it, each continuous run of letters or numbers is one word, allowing combining marks and internal apostrophes. An unspaced Chinese passage is then counted as one run, so word totals can differ between browsers.

UTF-8 size measures the encoded text in bytes. One KB is 1,000 bytes and one KiB is 1,024; one MB is 1,000,000 bytes and one MiB is 1,048,576. Emoji and non-Latin characters often need several bytes even when they count as one character.

In older browsers, the character-count fallback keeps common combining marks, emoji sequences, flags, and Hangul syllables together. It is not a complete replacement for Unicode segmentation: uncommon script-specific combinations may be counted differently. If a browser cannot identify a Unicode category reliably, the character appears under “Emoji and other”.

Sentences follow the browser’s language-aware sentence boundaries when available, or a punctuation-based estimate in older browsers. Abbreviations and unusual punctuation can still affect the result. Blank lines, including lines containing only spaces or tabs, separate paragraphs; a Unicode paragraph separator does too. One ordinary line break stays within the same paragraph.

Reading time uses 200 words per minute and speaking time uses 130, rounded up to whole minutes. These are rough planning estimates, not measurements: language, pauses, content and personal pace all matter, especially for languages such as Chinese.

Word density is a word’s occurrence count divided by the total word count, multiplied by 100. The list shows up to 25 words and includes common words and numbers. Case and equivalent accent encodings are grouped; different word forms remain separate. Percentages use all words, so the displayed entries need not add up to 100%.

Lines count explicit line breaks, including blank lines, rather than the rows created by wrapping text to fit your screen. Seven paragraphs separated by six blank lines have 13 lines if there are no other line breaks.

What this counter is useful for

Use it to prepare social posts, form fields, messages, titles, meta descriptions and short descriptions with a character limit.

Check an assignment or editorial brief against its requested length, then use the sentence and paragraph totals to review the structure. Reading and speaking estimates help plan articles, presentations and voice-over scripts.

Use word density to spot repeated wording before publishing. The character-category breakdown also helps inspect multilingual drafts, while line totals describe the structure of pasted text.

Because everything runs locally, you can check sensitive drafts, application text or unpublished copy without sending it to an online service.

Frequently asked questions

Some counters use JavaScript UTF-16 code units, which can split emoji and combined characters. This tool counts visible Unicode grapheme clusters when the browser supports it.

No. All calculations run in your browser. The page does not upload, persist, log, or transmit the text you enter.

The browser identifies sentence boundaries where supported; older browsers use a punctuation-based estimate. Abbreviations can cause differences. Paragraphs are separated by blank lines, including whitespace-only lines, or by Unicode paragraph separators. A single ordinary line break does not start a new paragraph.

A character is counted as a user-perceived Unicode grapheme when possible. UTF-8 bytes describe the encoded storage size, so one emoji or non-Latin character may use several bytes.

Each percentage is the word’s count divided by all words in the text. Up to 25 words are shown, including common words and numbers, with case and equivalent accent encodings grouped together. The list helps you spot repetition; it does not prescribe a target keyword density.

They are estimates at 200 words per minute for reading and 130 for speaking, rounded up to the next minute. Empty text shows zero. Your pace, language, pauses and subject can change the actual duration.

This counter counts explicit line breaks, including blank lines. Other tools may use different definitions. Compare identical raw text, including spaces and line endings, before comparing totals; screen wrapping does not change this tool’s line count.

JSON to YAML

Convert JSON to YAML locally while preserving number text and quoted strings; copy or download the complete result.

Open tool — JSON to YAML

YAML to JSON

Convert one YAML document locally to JSON with exact number text and bounded aliases, then copy or download the complete result.

Open tool — YAML to JSON

HTML to Markdown

Convert pasted or local HTML into Markdown, review conversion notes, and copy or download the result.

Open tool — HTML to Markdown

JavaScript Regex Tester

Test a JavaScript pattern locally and inspect matches, captures, and UTF-16 positions.

Open tool — JavaScript Regex Tester

Markdown to HTML

Convert a Markdown draft to an HTML fragment, inspect the source and inert preview, then copy or download it.

Open tool — Markdown to HTML

Text Sorter

Sort lines alphabetically by a chosen language or by Unicode code point, keeping duplicates, blank rows and complete line contents.

Open tool — Text Sorter

Remove Duplicate Lines

Keep the first copy of each exact text line, preserving order, significant spaces and blank rows, then copy or download the result.

Open tool — Remove Duplicate Lines

Text Diff Checker

Compare two drafts locally, with exact whole-line changes, visible whitespace rules and clear final-newline handling.

Open tool — Text Diff Checker

Case Converter

Convert text to uppercase, lowercase, capitalized words or sentence case with explicit letter rules.

Open tool — Case Converter

HTML Entity Encoder/Decoder

Encode or decode literal HTML references with explicit context, Unicode options and LF output, without parsing or rendering markup.

Open tool — HTML Entity Encoder/Decoder

Markdown Table Generator

Edit a small literal-text table, set alignment and copy GFM Markdown or import tab-separated text.

Open tool — Markdown Table Generator

Query String Parser & Builder

Edit ordered URL parameters, retain repeated names and copy a normalized query or HTTP(S) URL.

Open tool — Query String Parser & Builder

URL Encoder & Decoder

Convert a UTF-8 URL component or form value with explicit space and plus rules, then copy or download the result.

Open tool — URL Encoder & Decoder

Base64 Encoder & Decoder

Encode UTF-8 text as standard or URL-safe Base64, or decode either format with clear errors and complete text output.

Open tool — Base64 Encoder & Decoder

XML Formatter

Check namespace-aware XML 1.0, format or compact locally, and copy or download UTF-8 output.

Open tool — XML Formatter

JSON Formatter & Validator

Check JSON syntax, format or minify locally, and copy or download output while preserving original data tokens.

Open tool — JSON Formatter & Validator

SMS Character Counter & Segment Calculator

See how your message is encoded, where its segments end and what it may cost. Your text stays in your browser.

Open tool — SMS Character Counter & Segment Calculator

Social Media Character Counter

Check platform-specific limits and split posts without losing text.

Open tool — Social Media Character Counter

Text Size Calculator

Compare text encodings and payload sizes in your browser.

Open tool — Text Size Calculator

PDF Text Cleaner

Fix line breaks and spacing in text copied from a PDF. Preserve your original and review ambiguous hyphens before copying the cleaned text.

Open tool — PDF Text Cleaner

Fancy Text Converter

Convert supported fancy Unicode letters to normal text locally. Keep case, accents, emoji and your original text.

Open tool — Fancy Text Converter

Garbled Text Fixer

Fix garbled text and repair broken accents with a browser-based mojibake fixer. Review each possible UTF-8 reversal before applying it.

Open tool — Garbled Text Fixer

Gmail Clipping Checker

Measure email HTML bytes in UTF-8, compare them with an advisory 102,000-byte Gmail reference, and inspect size contributors locally.

Open tool — Gmail Clipping Checker
View all tools in this category