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库。
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/