首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++写下中文到xml文件中乱码

2012-09-24 
C++写入中文到xml文件中乱码有没有哪位兄台知道C++中写入中文到xml中为什么会出现乱码吗?xml文件中有:nam

C++写入中文到xml文件中乱码
有没有哪位兄台知道C++中写入中文到xml中为什么会出现乱码吗?

xml文件中有:
  <name>editor1122</name> 
  <nick>不知道</nick> 

setlocale(LC_ALL,"")
CMarkup xml;
(load...)
xml.FindChildElem(_T("nick"))
CString fnick=xml.GetChildData();//得到正确的中文名字
fnick="官人我要";
xml.SetSetData(fnick);//写入文件
//再打开文件就乱码了,还要设置些什么呢?



[解决办法]
我以前做过一个项目,也是用的XML,好像也有这个问题。可能是你写入了Unicode吧。
我把我项目的一个片段给你看看,我用的是TinyXML库。

C/C++ code
while(pElemScheme)        //首先查找是否已有相同名字的方案    {        hRoot=TiXmlHandle(pElemScheme);        CString strSchemeName;        strSchemeName = pElemScheme->Attribute(_T("Name"));        ConvertUtf8ToGBK(strSchemeName);        if (strSchemeName == ip.StrAdapterName())        {            if (-1 == nDelIndex)    //将修改分解为先新建,后删除旧的            {                document->InsertAfterChild(pElemScheme, scheme);            }            //删除此方案            document->RemoveChild(pElemScheme);            doc->SaveFile();            return true;        }        pElemScheme = pElemScheme->NextSiblingElement();    }//while
[解决办法]
要设置编码格式的吧 中文的是GBK /GB2312 其他的是UTF-8/

热点排行