칸칸

가이드

한글은 왜 2바이트이기도 하고 3바이트이기도 할까

고친 날 · Lumen Lab

글자를 숫자로 적는 방식(인코딩)이 달라서예요. EUC-KR은 한글 한 자를 2바이트로, UTF-8은 3바이트로, UTF-16은 2바이트로 적어요. 같은 '가'인데 적는 법만 다른 거예요.

글자별 바이트 수

이 사이트의 바이트 계산기로 한 글자씩 넣어 센 값이에요.

글자UTF-8EUC-KRUTF-16
A (영문)112
띄어쓰기112
가 (한글)322
漢 (한자)322
€322
😀4못 담음4

영문과 숫자만 쓴 글은 UTF-8과 EUC-KR의 바이트 수가 같아요. 차이는 한글과 한자에서 생겨요.

EUC-KR과 한글 2,350자

EUC-KR의 바탕인 국가표준 KS X 1001에는 한글이 2,350자, 한자가 4,888자 들어 있어요. 그런데 초성, 중성, 종성을 조합해 만들 수 있는 현대 한글은 11,172자예요. 나머지 8,822자는 이 표에 없어요.

윈도우가 쓰는 확장판(CP949)은 빠진 8,822자까지 모두 2바이트로 넣었어요. 브라우저가 EUC-KR이라고 부르는 것도 이 확장판이에요. 이 사이트는 확장판 표를 한 글자씩 대조해서, 2바이트로 담기는 글자가 17,048자이고 그 가운데 한글이 11,172자인 것을 확인했어요.

예를 들어 '똠'은 2,350자에 없는 글자예요. 확장판으로는 2바이트로 적을 수 있지만, 옛 완성형만 받는 곳에서는 적을 수 없어요. 바이트 계산기는 이런 글자가 글에 몇 자 있는지 따로 알려 줘요.

광고

바이트 제한을 글자 수로 바꾸면

한글만 쓴다고 하면 계산은 단순해요.

  • UTF-8로 1,000바이트 제한이면 한글 333자까지 들어가요. 333자는 999바이트이고, 334자는 1,002바이트라서 넘어요.
  • EUC-KR로 1,000바이트 제한이면 한글 500자까지 들어가요.

실제 글에는 띄어쓰기와 영문, 숫자가 섞여 있고 이것들은 1바이트라서, 쓸 수 있는 글자 수는 이보다 조금 많아요. 정확한 값은 글을 직접 넣어 세어 보는 게 빨라요.

줄바꿈도 바이트를 써요

줄바꿈 한 번은 저장하는 방식에 따라 1바이트(LF)이기도 하고 2바이트(CR과 LF)이기도 해요. 바이트로 제한하는 곳에서 줄을 자주 바꾸면 그만큼 쓸 수 있는 글자가 줄어요. 바이트 계산기에서는 줄바꿈을 0, 1, 2 가운데 골라 맞춰 볼 수 있어요.

어느 방식인지 모를 때

글을 낼 곳의 입력창에 '가' 한 자만 넣어 보세요. 2가 올라가면 EUC-KR 방식이고 3이 올라가면 UTF-8 방식이에요. 1이 올라간다면 바이트가 아니라 글자 수로 세는 곳이에요.

UTF-8과 EUC-KR 바이트를 나란히 볼 수 있어요.

바이트 계산기 열기

더 읽을 글

광고