Text Tools
Count and transform Unicode text locally with live results, useful editing controls, and no pasted content leaving your device.
Start from what is wrong with the text
- Character Counter
- Something imposes a limit — a bio, a meta description, a column — and you need to know where you stand.
- Case Converter
- A heading arrived in block capitals, or a list of names came back in the wrong case entirely.
- Line Sorter and Deduplicator
- A pasted list has duplicates in it, or has to come out in order.
- Text Diff
- Two versions of the same paragraph are open and you cannot see what moved between them.
- Slug Generator
- A title has to become the last part of a URL, without spaces, accents, or punctuation.
Why counting characters is harder than it looks
Ask three programs how long a piece of text is and you can get three answers, because a character is at least three different things. JavaScript strings are sequences of UTF-16 code units, so an emoji outside the basic plane occupies two of them. A family emoji, or a thumbs-up with a skin tone, is several code points joined by invisible zero-width joiners, and a reader would call the whole thing one character. Twitter counts one way, a database column counts another, and a form that says two hundred and eighty may mean any of them.
Case is not simpler. Turkish has a dotless i, so uppercasing an i correctly depends on knowing the text is Turkish; German ß has no single uppercase form and expands to SS. These tools apply Unicode's default rules rather than guessing a language, which is right for the common case and wrong for those two, so check a result before pasting it somewhere that matters. The slug generator draws its own line and says so on its page: a script it cannot transliterate produces nothing rather than a mangled approximation.
All five work on text you have pasted in, and none of them edits a file on your disk or reaches into a document you have open elsewhere. Paste in, read out, copy back. If you need to change the same thing across forty files, that is a scripted find-and-replace, not a page.
Frequently asked questions about Text Tools
Why does one emoji count as more than one character?
Because it is more than one character underneath. An emoji beyond the basic plane is stored as a surrogate pair, and a composed one — a flag, a profession, a skin tone — is a small sequence joined by zero-width joiners. The counter reports what the text actually contains, which is the number a database column and an API limit will care about, even though it is not the number your eye counts.
Is uppercase correct for every language?
No. Unicode's default casing is applied, without guessing which language the text is in. That is right nearly always and wrong in two well-known places: Turkish and Azerbaijani, where an uppercased i should keep or drop its dot depending on the language, and German ß, which expands to SS rather than having an uppercase form of its own. Read the result before you ship it.
Can these change a file rather than pasted text?
No. All five take text you paste and hand text back; none opens a file, saves over one, or touches a document open in another program. That is a deliberate limit rather than a missing feature — it is also why nothing you paste can leave the tab.
Does anything I paste get kept?
It lives in the tab and nowhere else. There is no account, no draft storage, and no analytics that could carry the text off the page, so closing the tab is the whole of the cleanup. The flip side is that a reload loses your work, so copy anything you want to keep before you navigate away.