Linux 下QT编程乱码问题解决
2013-04-04 13:21
369 查看
在QT中可以直接使用QTextCodec来转换字符串的编码。
例如,我们想在程序中使用中文,类似tr(“你好”)。我们要在main函数中增加以下几条语句
先调用下面两个函数之一
QTextCodec *codec=QTextCodec::codecForName(”gbk”);
QTextCodec *codec=QTextCodec::codecForName(”utf8″);
然后调用下面三个函数之一
QTextCodec::setCodecForCStrings(codec);
//这个函数主要是用在字符常量或者QByteArray构造QString对象时使用的一种编码方式。
QTextCodec::setCodecForTr(codec);
//这个函数的作用是设置传给tr函数时的默认字符串编码,GUI设计中最常用的一种。
QTextCodec::setCodecForLocale(codec);
//这个函数主要用于设置和对本地文件系统读写时候的默认编码格式。比如通过流读取一个文件内容时的编码格式或者通过qDebug()输出打印信息时的编码。
也可能不是程序的问题,而是QT字体的问题,这时可以在命令行输入qtconfig,启动QT配置程序,在其中设置其他字体,程序中的中文就能正常显示了。
也可以采用下述方式:
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
QFont font("Times",12,QFont::Normal,FALSE);
app.setFont(font);
...
label.setText(QObject::tr("你好!"));
...
有时候还需要如下使用:
QApplication a(argc,argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
QFont font("ZYSong18030",12,QFont::Normal,FALSE);
a.setFont(font);
MainWindow m;
m.show();
return a.exec();
显示中文正常!
例如,我们想在程序中使用中文,类似tr(“你好”)。我们要在main函数中增加以下几条语句
先调用下面两个函数之一
QTextCodec *codec=QTextCodec::codecForName(”gbk”);
QTextCodec *codec=QTextCodec::codecForName(”utf8″);
然后调用下面三个函数之一
QTextCodec::setCodecForCStrings(codec);
//这个函数主要是用在字符常量或者QByteArray构造QString对象时使用的一种编码方式。
QTextCodec::setCodecForTr(codec);
//这个函数的作用是设置传给tr函数时的默认字符串编码,GUI设计中最常用的一种。
QTextCodec::setCodecForLocale(codec);
//这个函数主要用于设置和对本地文件系统读写时候的默认编码格式。比如通过流读取一个文件内容时的编码格式或者通过qDebug()输出打印信息时的编码。
也可能不是程序的问题,而是QT字体的问题,这时可以在命令行输入qtconfig,启动QT配置程序,在其中设置其他字体,程序中的中文就能正常显示了。
也可以采用下述方式:
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
QFont font("Times",12,QFont::Normal,FALSE);
app.setFont(font);
...
label.setText(QObject::tr("你好!"));
...
有时候还需要如下使用:
QApplication a(argc,argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
QFont font("ZYSong18030",12,QFont::Normal,FALSE);
a.setFont(font);
MainWindow m;
m.show();
return a.exec();
显示中文正常!
相关文章推荐
- 解决Linux下Python3交互式编程时方向键乱码问题
- Linux 下使用 Qt 编程中文乱码的解决
- Qt 国际化编程解决汉字显示方块、乱码问题!
- 解决了QT网络编程中的中文乱码问题
- 解决putty终端中显示linux系统中C编程使用curses中文乱码的问题
- 编程解决Linux下解压zip乱码问题
- 解决putty终端中显示linux系统中C编程使用curses中文乱码的问题
- Qt 国际化编程,真正解决汉字显示方块、乱码问题!
- windows下Qt代码移植到linux下的中文乱码问题解决
- 解决SSH连接linux中文显示乱码问题
- Linux 中文乱码问题解决
- Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
- linux 下 自己写的 html文件产生中文乱码问题 解决办法
- 解决在Linux下安装Oracle时的中文乱码问题
- 编程技巧之:解决窗口控件上Caption乱码问题
- linux下oracle中文乱码问题的解决
- Linux下Birt、JTreeChart中文乱码问题解决办法
- oracle enterprise linux 5.5 中文乱码问题解决
- Qt做发布版,解决声音和图片、中文字体乱码问题(需要在main里写上QApplication::addLibraryPath("./plugins")才能加载图片,有图片,很清楚)
- windows到linux的mysql乱码问题解决方法