← 질문 목록
#353깊이 0

한글이 깨져 보이는 이유는?

언어 · 런타임기초

대개 저장할 때 쓴 규칙과 읽을 때 쓴 규칙이 달라서다. 바이트는 그대로인데 그것을 글자로 자르는 방법이 어긋난다.

  1. 글자 한을 저장한다
  2. 그다음은 UTF-8 규칙으로 3바이트가 된다입니다. 그다음

    UTF-8 규칙으로 3바이트가 된다
  3. 그다음은 읽는 쪽이 다른 규칙으로 그 바이트를 자른다입니다. 그다음

    읽는 쪽이 다른 규칙으로 그 바이트를 자른다
  4. 그다음은 엉뚱한 글자나 물음표가 나온다입니다. 그다음

    엉뚱한 글자나 물음표가 나온다

유니코드와 UTF-8은 다른 층이다. 유니코드는 글자마다 번호를 매긴 표이고, UTF-8은 그 번호를 바이트로 적는 방법 중 하나다.

ASCII와 호환되는 규칙에서는 영문이 1바이트로 같아서 어긋나도 잘 안 드러난다. 완성형 한글 한 글자는 UTF-8에서 3바이트라 규칙이 틀리면 바로 깨진다.

핵심 정리

깨지는 자리는 대개 경계다. DB 연결의 문자셋, 응답 헤더의 charset, 파일을 읽는 코드의 기본값 — 이 중 하나만 어긋나도 그 지점부터 어긋난다.

길이를 셀 때도 갈린다. 바이트 수와 글자 수가 다르므로 바이트 기준으로 자르면 글자 중간에서 잘려 깨질 수 있다. 이모지처럼 더 긴 글자에서는 글자 수마저 기대와 다르다.

깨진 위치를 보고 규칙과 바이트의 경계를 의심해야 한다. 깨진 화면을 보고 어느 경계를 의심할지가 답이다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

한글이 깨져 보이는 이유는?