개발을 하다보면 영어가 아닌 한글을 UI에 디스플레이 해야하는 경우가 있다.
여러 개발 환경 중 Qt에서 한글이 깨지지 않도록 하는 방법을 정리했다.

개발 환경

  • Windows 11
  • Qt 5.14.2 (with Qt Creator)
  • MSVC 2017 64bit

이 글은 위 환경 처럼 윈도우즈에서 Qt로 개발할 때 상황에 맞춰져있다.

보통 한글이 깨지는 주된 원인은 파일 인코딩인데 Windows에서 Qt Creator를 사용하면 기본 UTF-8로 설정되어있다.
일반적으로 UTF-8이면 한글이 꺠지지 않아야 하는데 이상하게 한글이 깨져서 보인다.
Qt Designer를 이용해서 Widget에 직접 한글을 입력해둔 경우에는 깨지지 않지만 코드를 이용해 Widget에 한글로 Text를 입력시키면 깨지게 된다.

처음 한글 깨짐 현상을 겪고 “Qt 한글 깨짐” 키워드로 검색해서 여러 해결 방법을 적용시켜봤지만 쉽게 해결되지 않았다.

찾다보니 위 해결방법들은 일반적으로 Linux 환경의 Qt에서 정상 동작하는 해결 방법인 것을 알게 되었고 Windows에서, 특히 MSVC를 사용할 때는 위 방법이 아닌 아래 옵션을 추가해주면 쉽게 해결이 가능했다.

Project file( .Pro )에 아래 내용 추가
QMAKE_CXXFLAGS += /utf-8

Project File에 입력 후 Run Qmake → Rebuild를 진행해주고 실행하면 한글이 꺠지지 않고 디스플레이 되는 것을 확인할 수 있다.

MSVC는 기본적으로 소스코드를 UTF-8로 처리하지 않는다고 한다. 그래서 위와 같은 옵션을 넣어주고 빌드를 하게 되면 MSVC가 소스코드를 UTF-8로 처리를 하게 되어 한글이 깨지지 않는 것이다.


참고 링크