Text Diff Checker
Compare two texts or code snippets side by side, with changed words highlighted and a downloadable patch.
Count words, characters, sentences, lines, and bytes as you type, with reading time and length limits. Free, private, and 100% in your browser.
| UTF-8 | 0 bytes |
|---|---|
| UTF-16 | 0 bytes |
| Latin-1 / ASCII | 0 bytes (pure ASCII) |
| Unicode code points | 0 |
| JavaScript .length | 0 |
| Visible characters | 0 |
Emoji and accented letters take 2–4 bytes in UTF-8, the encoding used by most databases, APIs, and files.
| Non-empty lines | 0 |
|---|---|
| Average word length | 0.0 chars |
| Longest word | — |
| Reading time | 0 sec |
| Speaking time | 0 sec |
| SMS | — |
Keywords appear when you add text.
Writers need word counts, marketers need character limits, and developers need to know how many bytes a string will take in a database column or HTTP header. This counter shows all of them at once and counts emoji and accented letters correctly.
Words, characters with and without spaces, sentences, paragraphs, and lines, updated on every keystroke.
See how much space your text takes in UTF-8 and UTF-16, plus Unicode code points and JavaScript string length, the numbers that matter for database columns and API limits.
Characters are counted the way people see them: 👍🏽 or a flag is one character, even though it is several code points and bytes.
Progress bars for SEO titles, meta descriptions, X (Twitter) posts, Instagram captions, and LinkedIn posts.
Find out how many text messages your message needs, and which characters force the 70-character UCS-2 encoding.
The most frequent words with their share of the text, optionally without common English words.
Words are found with your browser's built-in Unicode word segmentation, the same rules used for double-click selection. Numbers and hyphenated words count as words; punctuation does not. It also works for languages without spaces, such as Chinese and Japanese.
In UTF-8, the encoding used by most files, databases, and APIs, only basic Latin letters, digits, and punctuation take 1 byte. Accented letters like é take 2 bytes, most other scripts take 3, and emoji take 4 or more. A VARCHAR or API limit measured in bytes can therefore be reached before the character limit.
JavaScript strings count UTF-16 code units. Emoji and some rare characters use two units, and composed emoji (skin tones, flags, families) use several. The character count here shows what a reader sees as one character.
Reading time assumes 238 words per minute, the average silent reading speed of adults for non-fiction. Speaking time assumes 150 words per minute, a typical pace for presentations.
160 characters with the standard GSM-7 alphabet, or 153 per part when a message is split. A single character outside that alphabet, such as an emoji or many accented letters, switches the whole message to UCS-2: 70 characters, or 67 per part.
Compare two texts or code snippets side by side, with changed words highlighted and a downloadable patch.
Test JavaScript regular expressions live, with highlighted matches, capture groups, and find and replace.
Convert text and variable names to camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, and more.
Beautify, minify, and validate JSON instantly with exact line and column error reporting.