• 5421阅读
  • 1回复

存储XML文件 [复制链接]

上一主题 下一主题
离线hanb99
 

只看楼主 倒序阅读 楼主  发表于: 2006-11-10
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
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手写的),从文件读出来汉字还可以正常显示,为什么存回去的时候就是乱码了呢,十分不理解,请高人指点一下好吧
离线XChinux

只看该作者 1楼 发表于: 2006-11-10
都是UTF-8,不用进行内码转换,直接保存试试看。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个