查看网上的解决方法,大都是在文件中加入以下代码
#pragma execution_character_set("utf-8")
但是对于我的.dat文件中的中文并不生效.
“中文” 在不同的编码下对应不同的二进制形式
GB2312或GB2312-80是中国国家标准简体中文字符集
最终通过在读取文件时,采用以GB2312的格式进行读取
QFile file(path);//path是文件路径
if (file.open(QIODevice::ReadOnly| QIODevice::Text))//打开文件
{
while(!file.atEnd())
{
// 设置编码格式为 UTF-8
QTextCodec *codec=QTextCodec::codecForName("GB2312");
QByteArray tempLine = file.readLine();//循环读取下行
QString line = codec->toUnicode(tempLine.trimmed());
if(....)//关键词匹配
{
.....
}
}
}
tips:如果解决编码乱码UTF_8和GB2313都没用,可以试试设置为GBK。