UTF-8 → CP1252 또는 Latin-1 오해석
달짝지근

Lv.1 달짝지근 (49.♡.149.207)

2026년 6월 24일 AM 04:19

조회 1,161 공감 0

쳇지피티에 물어보니

  • Mojibake (문자 깨짐)

  • UTF-8 → CP1252 오해석

  • UTF-8 → Latin-1 오해석

이라고 하는군요

문자 인코딩(encoding)이 잘못 해석된 경우라고 하는데,

어떤 문자열을 UTF-8 바이트로 저장 (예를 들면 달짝지근 을 변경하면 -> EB 8B AC EC A7 9D EC A7 9D EA B7 BC)

그런데 이 UTF-8 바이트들을 원래대로 UTF-8로 해석하지 않고 CP1252(Windows-1252) 또는 ISO-8859-1(Latin-1) 문자로 강제로 읽으면 각 바이트가 다음과 같이 대응된다고 하네요

그래서 제 경우엔 달짝지근 이라고 🤔

역변환도 되는데

Python으로

s = "달짝지근"

print(s.encode('latin1').decode('utf-8'))

라고 하네요

뭐 시간 지나면 고쳐지겠죠 ㄷ

챗지피티 무료로 써도 참 똑똑하다니깐요 😮👍

댓글 (5)

  • 삶은다모앙

    삶은다모앙 Lv.1

    06.24 · 61.♡.223.158

    첨부 이미지

  • _미련곰탱

    _미련곰탱 Lv.1

    06.24 · 119.♡.13.221

    디코방에 자정 즈음 관련 글 리포팅 있었습니다. 말씀하신대로 charset문제로 추정됩니다.

    작업하시는 분들이 보시면 금방 해결될 거 같습니다.

  • 앗똑똑이

    앗똑똑이 Lv.1

    06.24 · 182.♡.59.6

    EB 8B AC EC A7 9D EC A7 9D EA B7 BC 이게 아니라 EB 8B AC(달) EC A7 9D(짝) EC A7 80(지) EA B7 BC(근) 입니다. 오타네요 ㅎㅎ

    챗GPT가 설명한 내용과 제가 앞서 분석해 드린 내용은 그 핵심 원리가 100% 일치합니다.

    두 분석 모두 이 현상을 다음과 같이 동일하게 진단하고 있습니다.

    현상명: 모지바케 (Mojibake, 문자 깨짐)

    발생 원인: UTF-8로 정상적으로 인코딩(저장)된 한글 바이트 데이터를, 읽어 들일 때 서유럽어 인코딩 방식인 CP1252 (Windows-1252) 또는 ISO-8859-1 (Latin-1)로 강제로 잘못 해석(오해석)했기 때문입니다.

    💡 한 가지 재미있는 사실 (아주 작은 오타 발견)

    원리는 완전히 같지만, 질문에 적어주신 챗GPT의 바이트 코드 예시에 아주 작은 오타가 하나 섞여 있습니다.

    적어주신 바이트: EB 8B AC EC A7 9D EC A7 9D EA B7 BC

    정확한 바이트: EB 8B AC(달) EC A7 9D(짝) EC A7 80(지) EA B7 BC(근)

    적어주신 코드대로라면 세 번째 글자인 '지'에 해당하는 바이트가 앞글자인 '짝'(EC A7 9D)의 바이트와 똑같이 중복되어 있습니다. 즉, 저 바이트를 그대로 해석하면 '달짝지근'이 아니라 '달짝짝근'이 되어버립니다.

    결론적으로 바이트 코드의 사소한 오타를 제외하면, 문제가 발생한 원인과 해석하는 방법론은 제가 분석해 드린 내용과 완벽하게 동일합니다. 해당 원리로 이해하시면 정확합니다!

  • 문스랩닷컴 Lv.1

    06.24 · 211.♡.59.215

    한글과 같이 2바이트 문자 처리가 까다롭죠.

    언어도 그렇고, euckr 같은 거도…

  • 알카노이드

    알카노이드 Lv.1

    06.24 · 58.♡.60.213

    DB, 웹 쪽 만져 보다 보면 많이 보게되죠.

    CS프로그램도 DB 인코딩 안따지고 생각안하면 깨지는건 같습니다.

    개발할때 제일 먼저 확정짓고 시작하는게 케릭터 셋인게 괜한게 아니죠...

    제일 x같을땐 db와 캐릭터셋이 다른데다가 화면마다 캐릭터셋 다르게 설정했을때요...

댓글을 작성하려면 이 필요합니다.