void CheckXML::openXML(const QString path)
{
if(path.isEmpty())
return;
QFile file(path);
if (!file.open(QFile::ReadOnly | QFile::Text))
{
QMessageBox::warning(this, tr("Open Error"),
tr("Cannot read file %1:\n%2.")
.arg(path)
.arg(file.errorString()));
return;
}
QDomElement root;
domDocument.setContent(file,true);
root = domDocument.documentElement();
}
以上是我打开XML文件的方法
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
QString str = domDocument.toString(); //这个是QDomDocument中的方法
QFile testfile("./file");
testfile.open(QIODevice::WriteOnly);
QByteArray a;
a.append(str);
QTextCodec *utfCodec = QTextCodec::codecForName("UTF-8");
QString utfStr = utfCodec->toUnicode(a);
QByteArray appendArray;
appendArray = utfCodec->fromUnicode(utfStr);
testfile.write(appendArray);
testfile.close();
这部分是保存XML文件的部分,
这个程序可以执行,但是保存过的XML文件中的汉字都是乱码,我的系统是ubuntu
环境也是UTF-8的
$ locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh:en_US:en
LC_CTYPE="zh_CN.UTF-8"
出现这个问题是不是我的编码转换写的有问题(不加也是乱码)要如何改
还有就是我原来的XML文件在保存时用的就是UTF-8(我是用gedit手写的),从文件读出来汉字还可以正常显示,为什么存回去的时候就是乱码了呢,十分不理解,请高人指点一下好吧