出现乱码是一位读写的编码不一致造成的。
1.写入xml
// 保存 XML 文件
QFile wfile(fileName);
// 只写模式打开文件
if (wfile.open(QFile::ReadWrite | QFile::Text))
{
QTextStream out(&wfile);
doc.save(out, QDomNode::EncodingFromDocument);
wfile.close();
}
2.读取xml
qt 读取xml文件中文问题
1、保存文件格式为UTF-8
2、文件流打开时设置
QFile file(currentFile); //相对路径、绝对路径、资源路径都可以
if(!file.open(QFile::ReadWrite)) //可以用QIODevice,Truncate表示清空原来的内容
return;
QTextStream stream(&file);
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
stream.setCodec(codec);
QString content = stream.readAll();
file.close();
QDomDocument doc;
if(!doc.setContent(content))
{
file.close();
return;
}
file.close();
//返回根节点
QDomElement root=doc.documentElement();