2015. 9. 11. 18:28

Cocos2d-x 한글 지원

한글이 깨져나와서 해결 방법을 찾아보았는데


기존에 많이 알려져 있는 CDevice.cpp 나 CConsole.cpp 파일의 CP_UTF8 -> CP_ACP 수정 방법은 ANSI 코드로만 출력하도록 고정하는 방법이므로 다국어 지원이 필요한 환경에서는 사용하지 않는것이 좋다.


문제의 원인은 Visual Studio 의 컴파일 방식인데 소스코드를 UTF-8로 작성하였다 하더라도 실행 파일에 포함된 문자 리터럴은 ANSI 로 처리가 되어 발생하는 문제임.


C++ 11 에서는 문자열 앞에 u8을 붙이는 것으로 문자열이 UTF-8임을 지정할 수 있도록 되어있지만 Visual Studio 2013은 지원하지 않음


UTF-8문자열을 사용하는 소스의 헤더파일에 아래코드를 추가하여 고정하면 글자가 정상적을 출력이 됨


#pragma execution_character_set("utf-8")