Qt 인코딩 문제 – UTF8

일반적으로 윈도우에서 Qt를 사용할 때는 euc-kr이나 cp949 인코딩을 사용하게 되는데,
이 경우 QString::fromLocal8bit 등을 사용하여 간단히 해결할 수 있다.
다만 필자의 경우 윈도우에서 작업하고 리눅스에 포팅하는 경우이기 때문에 한글 깨짐을 신경쓸수밖에 없는데
그래서 Qt 에디터 디폴트를 UTF8로 바꿔버렸다.
이러면 QString::fromUTF8을 통해 정상적으로 한글이 출력이 돼야하는데
소스에 친 한글이 제대로 출력이 되지도 않고, 심지어 세글자 이상을 입력하는 경우 컴파일조차 되지 않았다.
심지어 한글 출력도 첫번째 문자만 깨져서 출력이 됐다.

UTF8 한글 인코딩 에러화면

인코딩은 이상이 없었고,

포럼을 찾아도 안나오는 문제였는데, 얼핏 지나가면서 본 컴파일러 글에 문득 생각이 들어 컴파일러를 바꿔줬더니 잘 된다.

(흡족)

문제는 MSVC 컴파일러였던것.
컴파일러를 MinGW로 바꾸니까 잘 된다.
MSVC 컴파일 인코딩이 System Default(CP949)가 아니었나 싶다.
이걸로 마소를 싫어하는 이유가 하나 더생겼다.

*참고로 컴파일러를 굳이 MinGW로 안바꾸고 VS의 컴파일 인코딩을 바꾸면 해결이 될거같긴 한데
필자는 귀찮아서 그냥 MinGW 썼다.

댓글 남기기