Я думаю, вам нужно изменить имя кодека, так как вам нужен кодек из корейского набора символов в UTF8.
Попробуйте изменить код на:
QTextCodec *codec = QTextCodec::codecForName("cp949");
Поскольку на странице Википедии Кодовая страница 949 упоминается, что это нестандартная версия EUC-KR от Microsoft, вы также можете попробовать EUC-KR
.
Попробуйте следующую программу, чтобы получитьсписок текстовых кодеков и псевдонимов:
test.cpp
#include <QtCore>
int main(int argc, char** argv)
{
QCoreApplication app(argc, argv);
const auto codecs = QTextCodec::availableCodecs();
for (auto it = codecs.begin(); it != codecs.end(); ++it)
{
const auto codec = QTextCodec::codecForName(*it);
qDebug() << codec->name() << codec->aliases();
}
return 0;
}
test.pro
QT += core
SOURCES=test.cpp
QMAKE_CXXFLAGS += -std=c++0x
Обратите внимание, что для краткости программа использует auto
, но для этого требуется компилятор C ++ 11 (протестирован на GCC 4.4).