问题如标题显示的
我在window 7上跑QT可以显示
但在linux上跑会无法显示中文
想请问是怎回事呢?
我的linux版本为Ubuntu 10.04
QTE版本为4.7.1
以下是我简单的范例:
在windows 7上
#include <QtGui/QApplication>
#include <QDebug>
#include <QTextCodec>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QmlApplicationViewer viewer;
QTextCodec *codec = QTextCodec::codecForName("System");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForTr(codec);
char str[10] = "你好";
QString qstr = "哈囉";
qDebug() << "str =" << str;
qDebug() << "qstr =" << qstr;
return app.exec();
}
这样在windows下是可以正确显示的
不管是设QString还是一般的char字串都可以
但是相同的做法我在ubuntu下就会有问题
跑出来的东西是乱码
甚至我利用 QString qstr = "哈囉";
qstr.toLocal8bit().data()
或是
qstr.toUtf8().data()
都还是不行
我甚至使用这样的编码设定
#include <QTextCodec>
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf8"));
结果也是一样的
我在网路上查了很久,似乎没有找到其他的做法
被这个搞的很头痛
就来这里请问大家了
也请大家不吝指教了!
在此也先跟各位说声谢谢啰