스톤에이지 8.0 구축 가이드 18
========================================================
18. 시행착오 (2) — UTF-8 옵션 추가 후 한글 깨짐
========================================================
번역까지 했는데 한글이 ??? / 口口 / 꽥 등으로 깨지는 단계.
"UTF-8 소스니까 /utf-8 넣으면 되겠지"가 오히려 함정이었습니다.
--------------------------------------------------------
[ ❌ 한글 UI 가 깨짐 (MSVC UTF-8 옵션 추가 후) ]
--------------------------------------------------------
- 원인: src.vcxproj 에 다음을 추가했더니 문제 발생
/source-charset:utf-8 /execution-charset:utf-8
-> UTF-8 소스의 문자열이 UTF-8 바이트 "그대로" exe 에 저장.
그런데 게임의 GDI TextOutA(ANSI/CP949)가 그 UTF-8
바이트를 CP949 로 해석 -> 전부 깨짐.
--------------------------------------------------------
[ 해결 ]
--------------------------------------------------------
1) src.vcxproj 에서
/source-charset:utf-8 /execution-charset:utf-8 완전 제거
-> MSVC 가 문자열을 시스템 기본 코드페이지(CP949)로 저장.
2) font.cpp / directdraw.cpp 의 CreateFont charset:
GB2312_CHARSET -> DEFAULT_CHARSET
-> "맑은 고딕"이 한글 글리프를 찾도록.
--------------------------------------------------------
[ 검증 ]
--------------------------------------------------------
menu.cpp 의 ESC 메뉴를 번역 후 빌드 -> 인게임에서 ESC 키
입력 시 한글이 정상 출력되는지 확인.
--------------------------------------------------------
[ 교훈 ]
--------------------------------------------------------
"UTF-8 소스 = /utf-8 빌드"가 항상 정답은 아님. 런타임 출력
계층(GDI)이 무슨 코드페이지를 기대하는지가 진짜 기준입니다.
최종적으로는 "CP949 저장 + UTF-8 시도 후 ANSI fallback"
하이브리드가 정답(25번 파일에서 완성).
--------------------------------------------------------
다음: 19_시행착오_서버연결.txt

야추리아 님의 최근 댓글