How character and byte counting works

The number a Korean job application form asks for does not always match the first number this tool shows you. Here is why, and how to line them up.

What gets counted

This tool counts five things from pasted text. First, character count, shown both with and without spaces. Second and third are bytes, the actual storage size, which changes depending on encoding. Fourth is word count, split on whitespace. Fifth is manuscript-page count, a Korean publishing convention of 200 characters per page.

Two byte counts exist because Korean intake systems disagree on encoding. Older government and HR systems sometimes still expect EUC-KR; most modern web forms use UTF-8. We cannot tell you which one a given form wants; only the posting itself can say that.

The basics

Why UTF-8 and EUC-KR differ

UTF-8 is the modern web standard and stores one precomposed Hangul syllable as 3 bytes. EUC-KR (KS X 1001), a 1990s Korean encoding, stores the same syllable as 2 bytes. So the same Korean sentence measured in UTF-8 runs about 1.5x larger than in EUC-KR. ASCII characters (Latin letters, digits, punctuation) are 1 byte in both.

EUC-KR cannot represent every syllable

Modern Hangul has 11,172 possible syllables. EUC-KR (KS X 1001) only encodes 2,350 of the commonly used ones (a number our own code measured, not a textbook figure we retyped, see the next section). It encodes 4,620 Hanja characters. Rare combinatorial syllables and emoji simply cannot be written in EUC-KR, so when they appear we exclude them from the byte count and tell you exactly how many were skipped.

This tool's specifics

From here on, this is what our code actually does (src/lib/euckr.ts, src/lib/count.ts).

We did not hand-copy an EUC-KR table. The web platform does not let JavaScript encode to EUC-KR (legacy encodings are decode-only per the WHATWG standard), but the browser's TextDecoder("euc-kr") is accurate. So we ran all 8,836 two-byte combinations through it and kept only the ones that decode to a single valid character, building the table in reverse. That produced exactly 2,350 Hangul syllables and 4,620 Hanja, matching KS X 1001's documented Hangul count.

Character count uses JavaScript's string code-unit length. We opened saramin.co.kr's character counter on September 6, 2026 and compared three sentences by hand: character counts matched exactly (46/39, 54/47, 109/85) and so did EUC-KR byte counts (82/75, 70/63, 185/161). The samples and method are recorded in docs/academic-basis.md.

Manuscript pages use the common 200-characters-per-page convention (spaces included, rounded up). Some publishers and schools use 199 instead, so check with whoever is receiving the manuscript if the exact count matters.

Everyday tips

If a form says "500 characters including spaces," use our with-spaces figure and set the limit basis to characters. If it just says "bytes" without naming an encoding, try UTF-8 first (most modern systems use it) and fall back to EUC-KR if the form rejects your submission.

Word count splits on whitespace only, with no morphological analysis; this matches how Korean text is conventionally segmented into 어절 (spacing units).

Edge cases

If your text has emoji or rare Hangul syllables and the target system uses EUC-KR, aim for zero "not representable" characters, since those characters can turn into question marks or garbled bytes on older systems. Swapping emoji for plain punctuation keeps the text safe under EUC-KR.

A large gap between with-spaces and without-spaces counts means the text has a lot of whitespace. Many Korean application forms cap the with-spaces count, so check both before submitting to avoid getting silently truncated.

Common snags

The form's number does not match ours. The most common cause is a UTF-8/EUC-KR mismatch, so try the other basis. If it still does not match, the form may count whitespace differently (e.g. counting a line break as two characters) or run an old custom formula we have no way to verify.

Manuscript pages look off. Some publishers use 199 characters per page, or exclude spaces. Confirm the exact convention with the recipient.

Where does my pasted text go? Nowhere. It is counted right here in your browser and never sent to a server. See Privacy Policy.