[Qt-interest] How to translate GB18030 to Utf-8?
Kermit Mei
kermit.mei at gmail.com
Tue Aug 17 10:24:14 CEST 2010
Dear all, my code is as the following.
The file src.txt is an GB18030 format file, and I want to translate
its content into UTF-8 to show on Linux. The result is write into the
file dstFile. But the result is some bad code if there's some Chinese
characters in the src.txt.
Is there something wrong?
#include <QApplication>
#include <QFile>
#include <QTextStream>
#include <QPainter>
#include <QTextCodec>
void transLateGBtoUTF8()
{
QTextCodec *m_srcCodec = QTextCodec::codecForName("GB18030-0");
QTextCodec *m_dstCodec = QTextCodec::codecForName("UTF-8");
QFile srcFile("./src.txt");
srcFile.open(QIODevice::ReadOnly|QFile::Text);
QString tmpStr;
QTextStream in, out;
in.setDevice(&srcFile);
in.setAutoDetectUnicode(false);
in.setCodec(m_srcCodec);
tmpStr = in.readAll();
QFile dstFile("./des.txt");
dstFile.open(QFile::WriteOnly|QIODevice::Truncate|QFile::Text);
out.setDevice(&dstFile);
out.setCodec(m_dstCodec);
out << tmpStr;
srcFile.close();
dstFile.close();
}
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
transLateGBtoUTF8();
return 0;
}
Thanks
B.R
Kermit
More information about the Qt-interest-old
mailing list