QT中文字符串个数问题

来源:互联网 发布:玉环网络安全教育平台 编辑:程序博客网 时间:2024/05/21 22:26

问题描述
1、代码文件中,中文常量字符串的个数为奇数,编译报错
2、error: C2001: newline in constant;
error: C2143: syntax error : missing ‘;’ before ‘return’;
问题描述

解决方案

方案一

由于QT5中代码文件默认的编码方式UTF-8,而在这种编码的格式下不支持中文常量字符串个数出现奇数的情况。那么我们可以采取下面两步得以解决:

1、将此代码文件的编码方式转码成GB2312的格式,具体可以先新建一个文本文件(windows默认采用GB2312编码),将此代码文件里面的内容复制过去,并用此文件替换之前的代码文件,然后打开工程修改编码方式为GB2312

2、编译不会报错,但是结果并不是我们所预期的,这时:
代码应该稍作修改QString str = QString::fromLocal8Bit(“中文呢”);中文前都需要加上函数,是告诉编译器这里的“中文呢”应该按照GB2312的编码格式转码成Unicode码。

方案二

由于QT5中代码文件默认不支持中文常量字符串个数出现奇数的情况,我们可以先将中文转码成Unicode码(\u****),或者UTF-8码(\x**\x**\x**),然后将中文替换成对应的Unicode码或者UTF-8码。例如:

QString str1 = "\xe4\xb8\xad\xe6\x96\x87\xe5\x91\xa2";//"中文呢"对应的utf-8码QString str2 = QString::fromLocal8Bit("\u4e2d\u6587\u5462");//"中文呢"对应的Unicode码

当然,这需要得到对应的编码才可以。那就需要个转码器,下面提供个下载的链接http://download.csdn.net/detail/tadpole099/9854647

原创粉丝点击