qt creator vc 编译器在源码中写入中文字符串常量 为什么会报错

Q_OBJECT 2015-02-04 02:27:50
想直接在源代码中使用中文字符串常量,源码是utf8的,VC编译器总是报错,串中有换行符,怪异的是如果恰好串只有两个中文字符时,一切都是那么美好,多了,VC编译器就会报错 这是为什么呢
...全文
281 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Q_OBJECT 2015-02-06
  • 打赏
  • 举报
回复
用QStringLiteral也可以 或者直接在源文件中加入#pragma execution_character_set("utf-8") 主要是看你源码是不是UTF-8带不带bom,VC的编译器好像比较喜欢带BOM的
dbzhang800 2015-02-04
  • 打赏
  • 举报
回复
http://www.qtcn.org/bbs/read-htm-tid-54663.html
大卫无限 2015-02-04
  • 打赏
  • 举报
回复
引用 2 楼 Q_OBJECT 的回复:
其他的中文可以 但是如果是“开”字开头的两个字就不行(但是“开开”又是可以的) 还是报串中有换行符的错 真是纠结啊 !!!
QtCreator是默认为utf8无bom格式的.用windows自带的记事本,另存,另存的时候,选择utf--8默认就是保存成,utf8带bom的编码.
大卫无限 2015-02-04
  • 打赏
  • 举报
回复
引用 2 楼 Q_OBJECT 的回复:
其他的中文可以 但是如果是“开”字开头的两个字就不行(但是“开开”又是可以的) 还是报串中有换行符的错 真是纠结啊 !!!
如果你在字符串前面加入了 L"".这表示是宽字符,可能还报串中有换行符的错..改成QString::fromWCharArray(L"中文....")这个, 还有确定你的代码文本的格式是utf8带有bom格式的.你重新编译一下,不应该出问题的!!!
Q_OBJECT 2015-02-04
  • 打赏
  • 举报
回复
其他的中文可以 但是如果是“开”字开头的两个字就不行(但是“开开”又是可以的) 还是报串中有换行符的错 真是纠结啊 !!!
大卫无限 2015-02-04
  • 打赏
  • 举报
回复
如果你的是utf8带bom的格式,那么你的代码中的中文,这里最好这样写.QString::fromWCharArray(L"中文....");这是最通用的一种做法. 前提是必需是utf8带bom的格式,如果是无bom的这样写会乱码.

16,233

社区成员

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

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