C++Builder 程序员博客
4 Jul
为什么我收到的xml文件有乱码?
如下xml文件中ErrorMessage字段
=======================
代码如下:
//接收
err = SSL_read(ssl, buff, sizeof(buff) - 1);
CHK_SSL(err);
buff[err] = '\0';
p = buff;
printf("resv chars:\n%s\n", p); //打印xml文件
_di_IXMLDocument xml = NewXMLDocument(); //WideString ,AnsiString
xml->LoadFromXML((WideString)p); /*从一个xml字串导入,也可用LoadFromFile从文件导入,其他用法看帮助吧*/
_di_IXMLNode root = xml->DocumentElement; /*XML根节点*/
if(root->HasChildNodes) /*是否有子节点*/
{
_di_IXMLNode item;
_di_IXMLNodeList list = root->ChildNodes;
item = list->FindNode(WideString("Message")); /*查找子节点*/
root = item;
list = root->ChildNodes;
item = list->FindNode(WideString("ErrorCode"));
if(item &&!item->Text.IsEmpty())
{
String strT = item->Text;
}
item = list->FindNode(WideString("ErrorMessage"));
if(item &&!item->Text.IsEmpty())
{
String strT = item->Text;
}
}
=======================
打印出来的XML文件如下:
<?xml version="1.0" encoding="GB2312"?>
<LPMS_EKA>
<Message>
<ErrorCode>10 </ErrorCode>
<ErrorMessage>浣欓涓嶈冻 </ErrorMessage>
</Message>
<Response>
<PointsLeft>1000 </PointsLeft>
<STNumber>1-10343611 </STNumber>
<PointsRedemed>0 </PointsRedemed>
</Response>
</LPMS_EKA>
是的!
字符编码问题