乱码和编译错误问题

kaibaoma 2013-02-03 04:07:24
我用的xp系统sp3 qt creator2.6.0+4.8.3(vs-2008)


QString str=tr("心脏科");
qDebug()<<str;

如果是这样写的话,编译时会报错。
提示:
error C2001: 常量中有换行符
error C2146: 语法错误 : 缺少“)”(在标识符“qDebug”的前面)


QString str=tr("心脏科室");
qDebug()<<str;


如果是这样写编译正常。大侠们 这问题怎么解决啊
...全文
478 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dxsdcxy 2014-07-25
  • 打赏
  • 举报
回复
你可以这样: 在你的代码#include <QTextCodeC>,然后写入main函数里:QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); // 关键是这句 QString str = QApplication::tr("小明");
kaibaoma 2013-03-22
  • 打赏
  • 举报
回复
问题已解决,换个编译器就行了 MinGW
醉过方知酒烈 2013-02-19
  • 打赏
  • 举报
回复
你可以在main函数设置一下本地编码格式,就都对了,不过tr是用来翻译的,你写中文进去就用不着翻译啊,莫非你要翻译成英文?
  • 打赏
  • 举报
回复
里面有中文模式的字符。 挺楼上的。代码里面不建议写中文。
jdwx 2013-02-06
  • 打赏
  • 举报
回复
引用 3 楼 freebendy 的回复:
代码中存在hardcode的中文字符串本身就不合理,会因为你的cpp文件的编码不一样而存在问题,使用QObject::tr 和Lingust才是正确的解决办法。
正解。
Magic_still 2013-02-06
  • 打赏
  • 举报
回复
估计你括号“()”时使用了中文模式。因为我就经常这样出错。
ABECD 2013-02-05
  • 打赏
  • 举报
回复
不可能吧。..
coblan 2013-02-05
  • 打赏
  • 举报
回复
这个问题我也遇到过。 你的源程序编码可能是UTF8的,没有带BOM信息,MSVC认为是GBK,所以就出现这个问题。
菜园小火车 2013-02-04
  • 打赏
  • 举报
回复
编译器用MINGW应该没有问题
BenKwan 2013-02-04
  • 打赏
  • 举报
回复
代码中存在hardcode的中文字符串本身就不合理,会因为你的cpp文件的编码不一样而存在问题,使用QObject::tr 和Lingust才是正确的解决办法。
  • 打赏
  • 举报
回复
你的意思是多了一个“室”就可以了? 还有这等怪事? 你是在QObject的子类里使用的tr吗,如果不是需要用QObject::tr
windywater119 2013-02-03
  • 打赏
  • 举报
回复
是不是CPP文件的编码格式有问题?

16,817

社区成员

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

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