Qt5.12 c2001常量中有换行符问题的解决办法

Qt5.12 c2001常量中有换行符问题的解决办法扣扣技术交流群:460189483 当我们使用Qt编程时,如果程序代码中使用了中文字符,编译程序有时会出现莫名其妙的编译错误,提示“常量中有换行符”。这究竟是怎么回事,又该如何解决呢?错误原因在Qt中,默认的编码是Unicode,我们书写的代码文件被强制转换为utf8,但是,在简体中文版的Windows操作系统中,默认编码却是GBK。因此,在编译Qt程序时…

扣扣技术交流群:460189483 

当我们使用Qt编程时,如果程序代码中使用了中文字符,编译程序有时会出现莫名其妙的编译错误,提示“常量中有换行符”。

这究竟是怎么回事,又该如何解决呢?

错误原因

在 Qt 中,默认的编码是 Unicode,我们书写的代码文件被强制转换为 utf8,但是,在简体中文版的 Windows 操作系统中,默认编码却是 GBK。

Qt出现常量有换行符怎么办

因此,在编译 Qt 程序时,如果代码中含有特定中文字符,Qt 的编译器就会发生误判,向我们报告“常量中有换行符”。

Qt出现常量有换行符怎么办

当然了,如果你使用别的一些中文字符,恰巧该字符编码不含这些特定字符,则编译时不会报错,但程序运行时中文字符却往往不能正常显示。

Qt出现常量有换行符怎么办

那么,这又该如何解决呢?知道了原因,解决起来也很简单,主要思路有两种:

一种是折中的解决方法:更改设置或调整代码,避免编译错误

另一种是推荐的解决办法:将本地编码转换为 Unicode 交由 Qt 处理

思路一:折中的解决办法

折中的解决方法也有两种:

1、更改设置

打开Qt Creator,点击菜单“工具”-“选项”。

Qt出现常量有换行符怎么办

在“文本编辑器”-“行为”选项卡中,将文件编码更改为 UTF-8,并且选择“如果编码是UTF-8则添加”。

Qt出现常量有换行符怎么办

2、代码调整

或者,在代码中用 QString.toLocal8Bit( ) 将 Unicode 编码转换为本地系统编码。

Qt出现常量有换行符怎么办

经过以上处理之后,编译期就不会再报“常量中有换行符”错误了。

推荐的解决办法

使用以上方法之后,虽然编译时将不会报“常量中有换行符”错误,但不能保证中文字符能正确显示。

Qt出现常量有换行符怎么办

若想字符得以正常显示,则可以使用 QString::fromLocal8Bit 来将本地字符编码转换为 Unicode 形式的 QString。毕竟,在这个越来越全球化的时代,Unicode 才是王道。

Qt出现常量有换行符怎么办

 

今天的文章Qt5.12 c2001常量中有换行符问题的解决办法分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/28595.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注