• 8558阅读
  • 14回复

[提问]菜鸟首帖,QT的中文显示 [复制链接]

上一主题 下一主题
离线vicar
 
只看楼主 倒序阅读 楼主  发表于: 2009-08-16
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
最近学用QT,发现中文字串乱码,翻了论坛之后学会了
  QTextCodec* pcodec=QTextCodec::codecForName("gb2312");
  QTextCodec::setCodecForLocale(pcodec);
  QTextCodec::setCodecForCStrings(pcodec);
  QTextCodec::setCodecForTr(pcodec);
接下来直接写中文字串就可以正常显示了

但是,人生不如意十有八九,我发现程序放到别的机器上照样乱码,于是我继续翻帖子
发现了  http://www.qtcn.org/bbs/read.php?tid=9450
XChinux同学提出要带上plugins/codecs/qcncodecs4.dll,可惜不管用
linlinshan同学发现了解法,可惜她没明说...
终于,感谢百度大神
http://linux.chinaunix.net/techdoc/install/2009/06
哈哈。。 乱码问题解决了! main.cpp里设置如下:
QTextCodec::setCodecForTr( QTextCodec::codecForName( "System" ));
把gb2312改成System就可以了。

特此发帖 以供后人
keyword:qt 中文 乱码 目标机 不同机器 别的机器
离线gotomall
只看该作者 1楼 发表于: 2009-08-16
其实很简单,没那么复杂。出现乱麻的问题是你编写代码的文件编码和complied不一致。

如果使用Qt Ctreator,将设置文件为utf-8,或者其他字符集X,
然后,QTextCodec::setCodecForTr( QTextCodec::codecForName( "utf8" ));
只要明确知道自己编辑的是什么编码,然后再转编码。你编辑的文件是X字符集,utf8 改x即刻。
离线vicar
只看该作者 2楼 发表于: 2009-08-16
谢谢楼上,如果已有一个文件,怎么获知它是什么编码的呢?
离线gotomall
只看该作者 3楼 发表于: 2009-08-16
引用第2楼vicar于2009-08-16 09:57发表的  :
谢谢楼上,如果已有一个文件,怎么获知它是什么编码的呢?


qt creator 就有此功能
当你设置为utf8,如果不识别,会提示你当前编码,和转换编码。稍候给你截图
离线robertkun

只看该作者 4楼 发表于: 2009-08-16
顶一个,vc 中
                                              简单的生活使人快乐!
离线interlc

只看该作者 5楼 发表于: 2009-08-16
好东西啊,一定要顶啊,感谢楼主和各位大侠,我终于又掌握一个技术了,哈哈哈……
离线vicar
只看该作者 6楼 发表于: 2009-08-16
大赞,感谢gotomall,robertkun同学
离线rqzrqh

只看该作者 7楼 发表于: 2009-08-16
UTF8通用
离线浪漫天使
只看该作者 8楼 发表于: 2009-08-17
引用第3楼gotomall于2009-08-16 12:48发表的 :
qt creator 就有此功能
当你设置为utf8,如果不识别,会提示你当前编码,和转换编码。稍候给你截图


请问大侠在creator里面在那里打开这个编码设置的界面的?谢谢。
离线napier

只看该作者 9楼 发表于: 2009-08-17
Edit | Select encoding
离线hys97

只看该作者 10楼 发表于: 2009-08-24
学习了,正在解决这个问题!
离线xafzg66
只看该作者 11楼 发表于: 2009-08-24
学习了 顶一个
离线zg123
只看该作者 12楼 发表于: 2010-03-25
学到了!!!
离线linlin3233
只看该作者 13楼 发表于: 2010-08-27
虽然是老帖,但是还是要顶啊
离线pika_l
只看该作者 14楼 发表于: 2011-02-28
“linlinshan同学发现了解法,可惜她没明说...”

同感~~
快速回复
限100 字节
 
上一个 下一个