개요

  1. QT는 내부적으로 Unicode를 사용하며 tr 로 묶인 문자열도 UTF8 로 취급.
  2. 일반적으로 에디터에서 EUC-KR 을 사용하므로 QMessageBox나 TextEdit 등 QT의 widget에서 문자가 깨지게 됨.

해결책

  1. QString을 직접 사용하는 경우 소스 파일의 codec이 eucKR임을 QT에게 알려 줌(반드시 QApplication 생성후에 호출해야 함!!)

    QApplication app(argc, argv);
    QTextCodec::setCodecForTr(QTextCodec::codecForName("eucKR"));
    CPP
  2. QString을 const char *형으로 변환해서 사용해야 할 때  toAscii()를 사용해서는 한글인식이 제대로 되지 않는다.
  3. toLocal8Bit()를 사용해서 처리하면 한글을 처리 할 수 있다.