QT 에서 euc-kr 을 기본 text codec 으로 설정
개요
- QT는 내부적으로 Unicode를 사용하며 tr 로 묶인 문자열도 UTF8 로 취급.
- 일반적으로 에디터에서 EUC-KR 을 사용하므로 QMessageBox나 TextEdit 등 QT의 widget에서 문자가 깨지게 됨.
해결책
QString을 직접 사용하는 경우 소스 파일의 codec이 eucKR임을 QT에게 알려 줌(반드시 QApplication 생성후에 호출해야 함!!)
QApplication app(argc, argv); QTextCodec::setCodecForTr(QTextCodec::codecForName("eucKR"));
- QString을 const char *형으로 변환해서 사용해야 할 때 toAscii()를 사용해서는 한글인식이 제대로 되지 않는다.
- toLocal8Bit()를 사용해서 처리하면 한글을 처리 할 수 있다.