读书人

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

发布时间: 2012-09-24 13:49:42 作者: rapoo

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/

读书人网 >C++

热点推荐