Tools

Korean writing toolkit

Character & byte counter

Count characters with and without spaces, lines, UTF-8 bytes, and EUC-KR-style bytes. Set a draft goal for a cover letter or personal statement, Korean SMS/LMS, or KakaoTalk — presets are configurable starting points, not universal rules.

Input

Draft text

Goal

Draft goal

Counts

Live totals

Characters (with spaces)
0
Characters (no spaces)
0
Lines
0
UTF-8 bytes
0
EUC-KR-style bytes
0

Progress toward goal

What it counts

Character totals use Unicode code points, so emoji count as one character. UTF-8 bytes follow the real UTF-8 encoding. EUC-KR-style bytes use the common SMS convention: ASCII 1 byte, all other characters 2 bytes. That matches how Korean SMS/LMS length has long been described; it is not a full CP949 encoder.

About the presets

Cover letter and KakaoTalk presets are editable defaults — portals and chat surfaces differ, so confirm the rule that applies to your form. The SMS 90-byte and LMS 2,000-byte presets follow the long-standing Korean mobile convention under EUC-KR-style counting. Labels say “configurable” because you should treat them as starting points.

Privacy

Text, goals, and the selected preset are stored only in this browser (localStorage) and optionally in the URL hash when you copy a share link. Nothing is uploaded to modu.tools.

Limits

Very large pastes may feel slow because every keystroke recomputes counts in the page. Share links embed the draft in the hash — avoid putting secrets in a link you will send elsewhere.

This counter reports four numbers at once: characters with spaces, characters without spaces, UTF-8 bytes, and SMS-style bytes (ASCII 1, other characters 2). Korean copy often fails a limit at the last minute because teams mix those definitions.

When to use which number

Cover letters / application forms. Pick a 1,000- or 2,000-character goal and watch the remaining count. If the employer excludes spaces, switch the mode. Presets are starting points, not every ATS rule.

SMS / LMS. Choose the SMS 90-byte goal to match many Korean messaging gateways. A confirmation like a clinic reminder can sit under 90 SMS-style bytes while UTF-8 looks worse. Do not shrink copy using the wrong column.

KakaoTalk drafts. Limits vary by surface, so the KakaoTalk goal is editable rather than a hard product claim.

APIs and databases. If the limit is documented in bytes for UTF-8 storage, trust the UTF-8 column. Encoding traps are covered in the Hangul byte guide on the Korean site.

How to read the table

Label Rule Example for 안녕 hi
With spaces Every code point, including spaces and newlines 5
Without spaces Spaces, tabs, newlines removed 4
UTF-8 bytes Hangul 3, ASCII 1, many emoji 4 9
SMS-style bytes ASCII 1, otherwise 2 7

Line counts appear as well. Blank lines still add newline characters to the with-spaces total.

Limits worth knowing

Counts use Unicode code points. Skin-tone and family emoji can look like one glyph but count as several. Always re-check inside the submission UI when emoji are involved.

SMS-style bytes treat non-ASCII as 2 even when EUC-KR cannot represent an emoji. Test-send before production.

Drafts auto-save locally. Share links put content in the URL fragment—convenient for collaboration, unsafe for secrets.

Practical checklist before you submit

  1. Write down the employer or gateway rule in one line: with spaces or without, characters or bytes.
  2. Paste into this counter and match that rule explicitly.
  3. Paste again into the real form and trust the form’s own counter as the final authority.
  4. Watch blank lines: they inflate the with-spaces total without adding words a reviewer cares about.
  5. Keep a local file copy. Browser storage is convenience, not backup.

If you are drafting bilingual materials, count Korean and English separately. English word limits and Korean character limits are different products. This tool focuses on character and byte metrics that matter for Korean forms and messaging gateways, while still counting Latin text correctly under the same rules.

SMS-style versus UTF-8 in one story

Suppose a reminder template is fine in English under 90 UTF-8 bytes. Add a Hangul clinic name and the UTF-8 column jumps by three bytes per syllable, while the SMS-style column jumps by two. Teams that only watch UTF-8 sometimes rewrite messages that still fit SMS. Teams that only watch SMS-style can blow a UTF-8 database column. Showing both columns on one screen is the point of this page.

When variables such as personal names are substituted, measure the longest realistic substitution, not the sample name in the template doc.

FAQ

Should I use characters with spaces or without?

Follow the form instructions first. If they are silent, count with spaces included. A draft that fits the with-spaces limit always fits the without-spaces limit too.

Why does the SMS byte count disagree with other byte counters?

SMS-style counting uses 1 byte for ASCII letters, digits, spaces and newlines, and 2 bytes for everything else. UTF-8 counters treat Hangul as 3 bytes, so the number looks larger. This tool shows both.

Where is my draft stored?

Only in this browser profile via local storage. It is not uploaded. Clearing site data removes it.

Can someone read my text from a share link?

Yes. The share URL embeds the draft after #. That fragment is not sent to the server, but anyone with the link can read it. Do not share personal data.