乱码和编译错误问题

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;


如果是这样写编译正常。大侠们 这问题怎么解决啊
...全文
444 12 点赞 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dxsdcxy 2014-07-25
你可以这样: 在你的代码#include <QTextCodeC>,然后写入main函数里:QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); // 关键是这句 QString str = QApplication::tr("小明");
  • 打赏
  • 举报
回复
kaibaoma 2013-03-22
问题已解决,换个编译器就行了 MinGW
  • 打赏
  • 举报
回复
你可以在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,所以就出现这个问题。
  • 打赏
  • 举报
回复
lwei3600103 2013-02-04
编译器用MINGW应该没有问题
  • 打赏
  • 举报
回复
BenKwan 2013-02-04
代码中存在hardcode的中文字符串本身就不合理,会因为你的cpp文件的编码不一样而存在问题,使用QObject::tr 和Lingust才是正确的解决办法。
  • 打赏
  • 举报
回复
你的意思是多了一个“室”就可以了? 还有这等怪事? 你是在QObject的子类里使用的tr吗,如果不是需要用QObject::tr
  • 打赏
  • 举报
回复
dowithsmiles 2013-02-03
是不是CPP文件的编码格式有问题?
  • 打赏
  • 举报
回复
相关推荐
发帖
Qt
加入

1.3w+

社区成员

Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
申请成为版主
帖子事件
创建了帖子
2013-02-03 04:07
社区公告
暂无公告