问题描述:替换本地file.project文件中的所有某一字符串,test.project中含有中文,发现缺少QTextCodec::codecForName("utf-8")后总是乱码。所以总结出QTextStream的默认编码方式不是utf-8,所以需要手动指定一下才能正确解析。示例代码如下:
QTextStream fileStream(&file );
fileStream.setCodec(QTextCodec::codecForName("utf-8"));//必须加,否则含有中文时乱码
QString qsAll = fileStream.readAll();
file.close();//关闭文件
if (!file.open(QIODevice::WriteOnly|QIODevice::Truncate))
{
return DxFunctionResult(ERROR_COMMON_READ_STYLESHEET_FAILURE);
}
QTextStream out(&file );
out.setCodec(QTextCodec::codecForName("utf-8"));//必须加,否则含有中文时乱码
QString qsOldKey = kPatientInfo + "/" + qsOldPatientID + "/";
QString qsNewKey = kPatientInfo + "/" + qsPatientID + "/";
qsAll.replace(qsOldKey, qsNewKey );
out << qsAll;
file.close();