달짝지근 (49.♡.149.207)
2026년 6월 24일 AM 04:19
쳇지피티에 물어보니
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)
-
삶삶은다모앙
06.24 · 61.♡.223.158

-
__미련곰탱
06.24 · 119.♡.13.221
디코방에 자정 즈음 관련 글 리포팅 있었습니다. 말씀하신대로 charset문제로 추정됩니다.
작업하시는 분들이 보시면 금방 해결될 거 같습니다.
-
앗앗똑똑이
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)의 바이트와 똑같이 중복되어 있습니다. 즉, 저 바이트를 그대로 해석하면 '달짝지근'이 아니라 '달짝짝근'이 되어버립니다.
결론적으로 바이트 코드의 사소한 오타를 제외하면, 문제가 발생한 원인과 해석하는 방법론은 제가 분석해 드린 내용과 완벽하게 동일합니다. 해당 원리로 이해하시면 정확합니다!
- 문
문스랩닷컴
06.24 · 211.♡.59.215
한글과 같이 2바이트 문자 처리가 까다롭죠.
언어도 그렇고, euckr 같은 거도…
-
알알카노이드
06.24 · 58.♡.60.213
DB, 웹 쪽 만져 보다 보면 많이 보게되죠.
CS프로그램도 DB 인코딩 안따지고 생각안하면 깨지는건 같습니다.
개발할때 제일 먼저 확정짓고 시작하는게 케릭터 셋인게 괜한게 아니죠...
제일 x같을땐 db와 캐릭터셋이 다른데다가 화면마다 캐릭터셋 다르게 설정했을때요...
댓글을 작성하려면 이 필요합니다.