Back to home

Text Tools

Word and character count, case conversion, JSON formatting, and Base64 encode/decode — paste your text once, switch between tools as needed.

0

Characters

0

Characters (no spaces)

0

Words

0

Lines

0

Paragraphs

A few notes on how each tool works

Word count uses Unicode-aware matching to count runs of letters and numbers as "words" — this works well for space-separated languages but, like most word counters, treats a whole run of Chinese, Japanese, or Korean text as fewer "words" than a native reader would count, since those scripts don't use spaces between words. The character count is the more meaningful number for CJK text.

Base64 encode/decode is Unicode-safe — it correctly round-trips emoji, Chinese characters, and any other non-Latin text, which a naive browser-only btoa()/atob() call actually gets wrong. The JSON formatter uses your browser's own built-in JSON parser, so any error message you see (like "Unexpected token") is the same one you'd get from the browser's own JavaScript engine, not a custom approximation.

Frequently asked questions

Is any of my text sent to a server?

No — every tool here (counting, case conversion, JSON formatting, Base64) runs entirely in your browser using built-in JavaScript. Nothing you paste is uploaded anywhere, which makes this safe for sensitive text too.

Why is the word count different from what I expected for Chinese/Japanese text?

Word counting assumes words are separated by spaces, which isn't how Chinese, Japanese, or Korean text works — a whole sentence without spaces may be counted as a single "word." The character count above it is the more reliable number for these languages.

Why does Base64 decoding sometimes fail?

Base64 has a strict character set and padding format — if the text you pasted has extra whitespace, was truncated, or was never valid Base64 to begin with, decoding will fail with an error rather than silently producing garbage.

···