Calculate Text Length
Calculate text length instantly: character count, word count, sentence count, reading time, byte size, and 15+ metrics from any text input.
Character Frequency
Enter text to see character frequency.
Top Words
Enter text to see word frequency.
About
Miscounting characters costs real money. API payloads truncate at byte limits, not character limits. SMS billing segments at 160 chars (GSM-7) or 70 chars (UCS-2 for Unicode). Meta descriptions get clipped beyond roughly 155 characters. Database VARCHAR columns silently truncate inserts. This tool computes 15+ metrics from raw text: characters (with and without whitespace), words, sentences, paragraphs, lines, unique words, average word length, reading time at 238 wpm (Brysbaert, 2019), speaking time at 150 wpm, and UTF-8 byte size. All calculations run locally in-browser with zero server round-trips.
Limitations: sentence detection uses punctuation heuristics and will miscount abbreviations like "U.S.A." as multiple sentences. Reading time assumes adult silent reading of English prose. Byte size reflects UTF-8 encoding only. For CJK text, word segmentation is approximate since Chinese and Japanese lack whitespace delimiters. The tool treats any whitespace-separated token as a word.
Formulas
Character count returns the full Unicode-aware length of the string. Characters without spaces strips all whitespace classes before counting.
Word count splits on whitespace boundaries and filters empty tokens.
Reading time divides word count by average adult silent reading speed.
Speaking time uses conversational pace.
Byte size is computed via UTF-8 encoding using the Blob API.
Where text = raw input string, chars = total character count, words = total word count, tread = estimated reading time in minutes, tspeak = estimated speaking time in minutes, bytes = UTF-8 encoded byte size.
Reference Data
| Platform / Context | Limit | Unit | Consequence of Exceeding |
|---|---|---|---|
| Twitter / X Post | 280 | chars | Post rejected |
| SMS (GSM-7) | 160 | chars | Split into multiple segments, doubled cost |
| SMS (UCS-2 / Unicode) | 70 | chars | Split into multiple segments |
| Google Meta Title | 60 | chars | Truncated with ellipsis in SERP |
| Google Meta Description | 155 | chars | Truncated, reduced CTR |
| Instagram Caption | 2200 | chars | Truncated after ~125 visible |
| YouTube Title | 100 | chars | Truncated at ~70 in search |
| LinkedIn Post | 3000 | chars | Post rejected |
| Facebook Post | 63206 | chars | Post rejected |
| Reddit Title | 300 | chars | Title rejected |
| Pinterest Pin Description | 500 | chars | Truncated |
| Slack Message | 40000 | chars | Message rejected |
| Email Subject Line (optimal) | 50 | chars | Clipped on mobile clients |
| MySQL VARCHAR max | 65535 | bytes | Silent truncation or error |
| PostgreSQL TEXT | 1 | GB | Performance degradation |
| JSON Web Token (URL) | 8192 | bytes | HTTP 414 URI Too Long |
| Average Reading Speed (adult) | 238 | wpm | Brysbaert 2019 meta-analysis |
| Average Speaking Speed | 150 | wpm | Conversational English pace |
| TikTok Caption | 2200 | chars | Truncated |
| WhatsApp Message | 65536 | chars | Message rejected |
| Push Notification (iOS) | 178 | chars | Truncated on lock screen |