• 12241阅读
  • 9回复

[提问]QT中文乱码 [复制链接]

上一主题 下一主题
离线destiny
 
只看楼主 倒序阅读 楼主  发表于: 2010-01-26
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
QString str = “中文”;
输入到文件就乱码,什么原因?
离线yangfanxing
只看该作者 1楼 发表于: 2010-01-26
在论坛里搜索“中文”找老帖看看吧~~~
PHPWind好恶心。。。不想看这种界面。。。
离线benbenmajia

只看该作者 2楼 发表于: 2010-01-26
转化格式啊什么的,确实很多~QTextCodec
安然.....
离线wd007

只看该作者 3楼 发表于: 2010-01-26
最好不要直接使用中文
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
离线jorneyr

只看该作者 4楼 发表于: 2010-01-27
引用第3楼wd007于2010-01-26 23:28发表的  :
最好不要直接使用中文

不同意你的说法, 这是回避问题, 而不是解决问题.

在Qt程序中使用中文, 只要使用得当, 是没有任何问题的. 我的程序就是在Mac下编写, 然后在Mac与Windows下都会去运行. 里面当然用了很多中文, 乱码问题从来没出现过.

1. 创建的Qt源文件使用UTF-8编码, 如果使用的是QtCreator的话, 直接在工程属性里设置成utf-8的编码.
2. 在main函数中使用UTF-8的QTextCodec来设置使用的编码
int main() {
.......
QTextCodec *codec = QTextCodec::codecForName("UTF8");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForCString(codec);
.......
}

3. 创建并打开窗口.

我一直都是按上面的方法来处理的, 从来没有被乱码问题烦过.
离线destiny
只看该作者 5楼 发表于: 2010-01-27
引用第4楼jorneyr于2010-01-27 03:05发表的  :
不同意你的说法, 这是回避问题, 而不是解决问题.
在Qt程序中使用中文, 只要使用得当, 是没有任何问题的. 我的程序就是在Mac下编写, 然后在Mac与Windows下都会去运行. 里面当然用了很多中文, 乱码问题从来没出现过.
.......


按您的方法解决乱码了,多谢!
离线darouwan

只看该作者 6楼 发表于: 2010-06-04
回 4楼(jorneyr) 的帖子
改了,变量里面显示的基本都没问题,直接显示的引号里面的还是不行啊
离线longwenbiao
只看该作者 7楼 发表于: 2010-06-12
回 4楼(jorneyr) 的帖子
正解
离线styyzx

只看该作者 8楼 发表于: 2012-08-23
    QTextCodec::setCodecForTr(QTextCodec::codecForName("System"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("System"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("System"));
看到有人这样讲,觉得挺不错的,但是设置起来还是显示不了中文,
但是 他又说里句:其实中文设置很简单,如果显示方块,那就是字体设置问题,如果乱码,就是编码设置问题。但是我还不知道 字体怎么设置
离线呆呆很呆
只看该作者 9楼 发表于: 2012-08-23
引用第3楼wd007于2010-01-26 23:28发表的  :
最好不要直接使用中文


同意你的说法,源码中应该使用英文,用翻译文件翻译成中文
快速回复
限100 字节
 
上一个 下一个