QT5 中文问题

fage87295970 2016-04-07 11:09:43
1、我在cpp文件中,这句代码“std::string str = "中国"”,结果str显示乱码?怎样保证str显示出来是正常的呢
2、我引用第三方库,其大量使用char数组来表示字符串,当表示中文的时候,在qt里就显示乱码?我想问怎样正确显示出中文呢。

我是从VC转到QT上来不久,最近被这中文乱码搞晕了。恳请大侠指点小弟一下,不胜感激!
...全文
132 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fage87295970 2016-04-08
  • 打赏
  • 举报
回复
楼上的,我是在qt creator里写代码的,你说的好像还是不行的呢
QIUSQJF 2016-04-08
  • 打赏
  • 举报
回复
//VS +QT5环境

#pragma execution_character_set("utf-8")

//由于UNICODE你的是正常的,那就没必说明如何转换了,下面就ANSI说一下

ANSI
//char* /string 转 QString
QString::fromLocal8Bit(char * str)

//QString 转 string/ char*
//一定要分开,否则中文一样可能乱码
QByteArray qbyte = QStringxx.toLocal8Bit();
string  str= qbyte .data();
jiqiang01234 2016-04-08
  • 打赏
  • 举报
回复
第三方库中使用的可能是gbk编码的汉字,所以需要QTextCodec来转化编码
fage87295970 2016-04-08
  • 打赏
  • 举报
回复
但是我使用tinyxml读xml文件中的中文是正常的
fage87295970 2016-04-08
  • 打赏
  • 举报
回复
谢谢楼上两位大侠,我源码文件是UTF-8的,像楼上这样,std::string str = "中国"; QString qstr = QString::fromStdString(str); str和qstr在我这里都显示乱码,除非std::wstring wstr = L"中国"才能正确显示中文,不过我要调用第三方库的输出(const char*类型)中文就乱码,难道必须要转换成const wchar*?????
冷静忍耐 2016-04-08
  • 打赏
  • 举报
回复
源码要是utf8的,然后转成QString就好了,一般qt用QString,QString默认是unicode std::string str = "中国"; QString qstr = QString::fromStdString(str);
dext 2016-04-07
  • 打赏
  • 举报
回复
这个问题不难,一步一步来,首先 你要在Qt 里 显示出中文来。 这一步达到以后,确定Qt 编码,然后再看看你原来的 VC程序编码。转码就可以了。 之前VC的IDE 编码 都很有问题,经常在非中文系统打开乱码。

16,203

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧