本帖最后由 wangxuqing 于 2010-03-16 10:03:08 编辑

解决方案 »

  1.   

    一方面,文件中指定encoding="utf-8";另一方面,保存文件的时候也必须要utf-8编码保存!你确定你的xml文件是utf-8编码的了吗?用记事本打开,save as,看看它显示的是否为utf-8编码
      

  2.   

    我记得tinyxml.h下面有个Parse方法,把最后一个参数指定为TIXML_ENCODING_UTF8,然后再用 MultiByteToWideChar,WideCharToMultiByte转化一下。
      

  3.   

    显示的是utf-8编码,我了解到中文系统下记事本编码为gb2312,每个字符为2个字节,而tinyxml解析时解析为utf-8每个字符3个字节,解析的过程是怎样进行的?如何转换编码呢?
      

  4.   


    是的。另外,看了一下你的代码加载的时候已经是 utf-8编码的了,
    为何cout的时候还要GBToUTF8???cout << GBToUTF8((char*)ChildElement->FirstChild()->Value()) << endl;
    改为  直接输出应该就可以
    cout << ChildElement->FirstChild()->Value() << endl;
    或者
    cout << UTF8ToGB((char*)ChildElement->FirstChild()->Value()) << endl;