Character Counter
Just paste your text. Character count, word count, and bytes — instantly, right in your browser.
Why character limits catch people off guard
Almost every text box you fill in online has a hidden ceiling: a tweet, a job-application field, a meta description, an SMS. The number on the label rarely tells you the whole story — "500 characters" can mean 500 Unicode characters, 500 bytes, or 500 characters excluding spaces, depending on who built the form. This counter gives you all six numbers at once (with-space count, no-space count, words, manuscript pages, UTF-8 bytes, and legacy 2-byte encoding) so you can match whichever definition the destination actually uses instead of guessing and getting truncated mid-sentence.
How to read the six numbers
- Paste or type your text into the box. Every stat updates as you type — nothing is sent anywhere, the count runs in your browser.
- Characters (with spaces) is the default most platforms and forms mean when they say "character limit." Use this first unless a field explicitly says otherwise.
- Characters (no spaces) matters for word-processing style limits and for a handful of essay platforms that historically excluded whitespace from the count.
- Words splits on whitespace — useful for résumé summaries or cover letters that cap word count instead of character count.
- Manuscript pages divides the with-spaces count by 200 and rounds up, matching the traditional 20×10 Korean manuscript grid (원고지) used in writing assignments and publishing submissions.
- Bytes (UTF-8) and Bytes (legacy 2-byte) matter when a backend — not a person — enforces the limit. Set an optional goal in the field above the stats to see a live over/under banner against any of these.
The byte math behind the two encodings
A "character" and a "byte" are not the same unit, and the gap is where most truncation surprises happen. In UTF-8, the encoding almost every modern website and API uses, an ASCII character (English letters, digits, basic punctuation) costs 1 byte, while a Hangul, CJK, or most accented character costs 3 bytes. Older systems built around EUC-KR, Shift-JIS, or similar double-byte character sets instead spend a flat 2 bytes on any non-ASCII character. So the same sentence can be, say, 90 bytes on a modern API and 65 bytes on a legacy government or banking system — this tool reports both so you can check against whichever one applies.
Text: "Digital marketer turned indie hacker. Building tools that save you five minutes a day. Coffee-powered. Always shipping."
With spaces: 119 characters · No spaces: 103 · Words: 17 · UTF-8 bytes: 119.
119 is under Instagram's 150-character bio cap, so this fits with 31 characters to spare — set the goal field to 150 and the banner turns green once you paste it in.
Text: "저는 5년차 백엔드 개발자로, 대용량 트래픽 처리와 데이터베이스 최적화 경험이 풍부합니다."
With spaces: 50 characters · No spaces: 40 · UTF-8 bytes: 124 · Legacy 2-byte: 87.
Every Hangul syllable here costs 3 bytes in UTF-8 but only 2 in the legacy encoding — a 37-byte gap on just one sentence. Many older Korean corporate and government forms still document their limit in bytes under the legacy assumption; if you paste in a full self-introduction and the form silently cuts you off before you expected, check the legacy byte count, not the UTF-8 one.
Text: "Just shipped a new feature! Check it out and let me know what you think. 🚀"
With spaces: 74 characters · UTF-8 bytes: 77.
The rocket emoji still counts as exactly one character in the with-spaces total — this tool counts by Unicode code point (via Array.from), matching how X and most platforms count, rather than by raw UTF-16 length, which would double-count it.
Common limits worth knowing
| Context | Typical limit | Counted as |
|---|---|---|
| X (Twitter) post | 280 | characters |
| Instagram bio | 150 | characters |
| Instagram caption | 2,200 | characters |
| YouTube video title | 100 | characters |
| SEO meta description | ~155–160 | characters (Google truncates by pixel width, so this is an approximation) |
| SEO title tag | ~50–60 | characters (same pixel-width caveat) |
| Single SMS segment | 160 (or 70 with any emoji/non-Latin script) | characters |
| Korean manuscript page (원고지) | 200 | characters, spaces included |
Mistakes that lead to truncated text
- Assuming "no note" means "without spaces." When a limit doesn't specify, it almost always includes spaces. Check the with-spaces number first.
- Reading the UTF-8 byte count for a legacy system, or vice versa. If a form was built years ago around a fixed byte budget, it may still expect the 2-byte-per-character legacy count even though the page itself is UTF-8 — this is the single most common silent-truncation cause in Korean-language forms.
- Forgetting that emoji and combining accents can inflate byte counts far more than character counts. An emoji is one character but can cost 4 bytes in UTF-8 — fine for a character-limited field, but it can eat into a byte-limited one fast.
- Confusing "manuscript pages" with printed pages. The 200-character page here is the traditional Korean writing-assignment unit (20 columns × 10 rows), not a word-processor page, which typically holds far more text.
What this tool doesn't do
It measures raw counts, not visual width — Google's actual meta-description cutoff is based on rendered pixel width, so a title full of narrow letters ("iiiil") fits more characters on the results page than one full of wide letters ("WWWWW") at the same character count. Treat the SEO figures above as a safe planning target, not an exact pixel simulator. Nothing you type is uploaded: every count runs locally in your browser, and only your last draft is cached in this device's local storage so you can pick up where you left off.
Sources & further reading
Frequently asked questions
Should I count characters with or without spaces?
It depends on where you're submitting. Character count with spaces is the most common standard — when a form says "up to 500 characters" with no further note, it usually means spaces included. Some forms specify "without spaces." Check the requirement, then read both numbers this character counter shows. When in doubt, the stricter with-spaces count is the safe choice.
Why are there two byte counts?
One character takes a different number of bytes depending on the encoding. In UTF-8 — the modern web standard — a Latin letter is 1 byte while a CJK character is 3 bytes. Legacy systems (EUC-KR, Shift-JIS and similar) store each CJK character as 2 bytes. Because the same text can hit a different byte limit in different systems, this byte calculator shows both. If a system limits you by bytes, use the count that matches its encoding.
How is the manuscript page count calculated?
The page count is the with-spaces character count divided by 200, rounded up. A standard manuscript page holds 20 columns × 10 rows = 200 characters, punctuation and spaces included. So 201 characters becomes 2 pages. Use it when an assignment asks for "at least N pages."
How are emoji and special characters counted?
Emoji (for example 😀) count as one character by Unicode code point. This tool uses Array.from(text).length, so surrogate pairs are never split. Bytes, however, reflect real UTF-8 encoding, so a single emoji can take 4 bytes. Special characters range from 1 byte (ASCII) to 3 bytes (CJK and symbols). Most character limits count code points, so you can rely on the character number.
Is my text sent to a server?
No. Every calculation in this character counter happens inside your browser. Your text is never transmitted anywhere over the internet. Your last input is saved only in this device's localStorage so you can continue where you left off — and that never leaves your device either. Even sensitive drafts like a cover letter are safe to check here.