Why SMS Caps Korean at 45 Characters — 90 Bytes and the EUC-KR Encoding
If you've ever used a bulk texting service, you've probably seen a note like "SMS supports up to 45 Korean characters, or 80 English characters." Why those specific numbers? They both come from the same underlying limit: the real cap on an SMS is 90 bytes, and Korean and English simply take up a different number of bytes under the encoding SMS uses — which is why the character limits look different.
1. SMS's real limit is bytes, not characters
The encoding Korea's three major carriers use as the SMS standard is EUC-KR. Under this encoding, one English letter or digit takes 1 byte, and one Korean character takes 2 bytes. Since a single SMS message tops out at 90 bytes, filling a message with nothing but Korean gives you 90 ÷ 2 = 45 characters, and filling it with nothing but English theoretically gives you 90 characters — but in practice, header and control data (like the sender's number) eat into part of that budget, so it's commonly advertised as 80 characters. In other words, "45 Korean characters" and "80 English characters" aren't two separate rules — they're the same 90-byte cap, divided by EUC-KR's 2-byte (Korean) or 1-byte (English) unit.
| Character type | EUC-KR bytes/char | Max characters at 90 bytes |
|---|---|---|
| Korean (complete syllable) | 2 bytes | ~45 characters |
| English/digits | 1 byte | ~80 characters (accounting for header overhead) |
| Mixed Korean + English | mixed calculation | up to a combined byte total of 90 |
2. Why UTF-8 and EUC-KR differ in Korean character byte size
UTF-8, the encoding commonly used on web pages and in APIs, spends 3 bytes on a single complete Korean character. EUC-KR, which SMS uses, spends only 2. This gap comes down to the different scope each encoding was built to cover. UTF-8 has to represent the whole of Unicode — emoji and every writing system in the world, over 140,000 characters — as variable-length byte sequences, so characters with a large Unicode code point value, like Korean, need 3 bytes. EUC-KR, on the other hand, was designed from the start as a fixed 2-byte encoding covering only East Asian scripts like Korean and Hanja, so it can represent those characters in fewer bytes. If your backend database runs on UTF-8 but your SMS sending provider tells you the limit is 90 bytes, you need to recognize that those 90 bytes are measured in EUC-KR, not UTF-8, in order to calculate the actual character count correctly.
3. Mix in emoji or special characters, and the rules change again
EUC-KR isn't a character set that can represent emoji at all. So the moment a message includes even one emoji, most carrier SMS systems automatically re-encode the entire message in UCS-2, a fixed 2-byte Unicode encoding. When that happens, the limit that was originally 45 Korean characters gets recalculated under UCS-2, and the effective maximum character count commonly drops to somewhere around 70 characters. In other words, "I just added one emoji and suddenly the character limit dropped a lot" isn't a bug — it's the expected result of the encoding switch.
4. Summary
- SMS's real limit is 90 bytes: 45 Korean characters and 80 English characters are just that 90-byte cap divided along EUC-KR byte boundaries.
- UTF-8 and EUC-KR differ in Korean byte size: UTF-8 uses 3 bytes vs. EUC-KR's 2 bytes.
- Emoji trigger a switch to UCS-2: which can shrink the usable character count further.
- Going over the limit auto-upgrades to LMS: which costs more, so checking your byte count before sending matters.
FAQ
Q. Why does SMS allow 45 Korean characters but 80 English characters?
A. Because the real SMS limit isn't a character count, it's a byte count (90 bytes). Under EUC-KR — the encoding carriers use to calculate SMS byte size — one Korean character takes 2 bytes, while one English character takes 1 byte. Divide 90 by 2 and you get 45 (Korean); accounting for header overhead gets you to roughly 80 (English).
Q. What happens if a message goes over 90 bytes?
A. It's automatically upgraded to an LMS (long message service). LMS can hold up to 2,000 characters, but it costs more than SMS. When using a bulk texting service, going even a few characters over can silently push an entire send job onto LMS pricing, so it's important to check the byte count in advance.
Q. Why do UTF-8 and EUC-KR use different byte counts for Korean characters?
A. UTF-8 has to represent the entirety of Unicode (roughly 140,000 characters) as variable-length sequences, so a single complete Korean character takes 3 bytes. EUC-KR, by contrast, was designed as a fixed 2-byte encoding targeting only East Asian character sets including Korean and Hanja, so it only needs 2 bytes per Korean character. Confusing the UTF-8-based character limits common on the web with SMS's EUC-KR-based byte limit will lead you to misjudge how many characters you can actually send.
Q. How many bytes does a message with emoji get counted as in SMS?
A. Most carrier SMS systems can't represent emoji in EUC-KR, so they switch the whole message to UCS-2 (fixed 2-byte) encoding instead. In that case, the overall message limit often drops from 45 Korean characters down to somewhere around 70 characters. Any message that mixes in emoji should have its actual limit confirmed with your sending provider before you send it.
Q. Are standalone Korean consonant/vowel letters also 2 bytes, even if they're not a complete syllable block?
A. Yes. This site's Character Counter tool's EUC-KR estimate counts standalone consonants (ㄱ–ㅎ) and vowels (ㅏ–ㅣ) as 2 bytes each, the same as a complete Hangul syllable (가–힣). Under the actual EUC-KR spec, these are also assigned to a separate 2-byte code range.
Q. What's the difference between LMS and MMS?
A. LMS is just a text message that holds more text than SMS (up to 2,000 characters). MMS is a multimedia message that can include images, video, and other rich content, and it costs even more than LMS.
Q. Does KakaoTalk's "AlimTalk" notification service follow this same byte limit?
A. No. KakaoTalk AlimTalk is delivered through Kakao's own servers rather than the SMS network, so it isn't bound by the EUC-KR 90-byte limit — it applies its own separate character policy instead (typically around 1,000 characters).
Q. Can I use this site's Character Counter to check byte count before sending an SMS?
A. Yes. The EUC-KR estimated byte count field lets you immediately see whether you're over the 90-byte mark, which is handy for gauging in advance whether your message will go out as SMS or get upgraded to LMS before you actually send it.