当前位置: 技术问答>linux和unix
用libxml解析文件时里面的汉字怎么处理
来源: 互联网 发布时间:2017-03-16
本文导语: 我在写程序解析xml文件时里面有汉字,程序大体上是这么写的,但是结果不正确: pdoc=xmlReadFile("sss.xml","UTF-8",XML_PARSE_NOBLANKS); if(NULL==pdoc) { printf("open file %s failedn","scd.xml"); ...
我在写程序解析xml文件时里面有汉字,程序大体上是这么写的,但是结果不正确:
pdoc=xmlReadFile("sss.xml","UTF-8",XML_PARSE_NOBLANKS);
if(NULL==pdoc)
{
printf("open file %s failedn","scd.xml");
exit(1);
}
proot=xmlDocGetRootElement(pdoc);
if(NULL==proot)
{
printf("find root failedn");
exit(1);
}
if(xmlStrcmp(proot->name,(const xmlChar *)"变电站")!=0)//汉字
{
printf("no MAC matchn");//输出
exit(1);
}
xml里面有变电站这三个汉字,我按字符处理,但是结果输出“no MAC match”,这是怎么回事?
pdoc=xmlReadFile("sss.xml","UTF-8",XML_PARSE_NOBLANKS);
if(NULL==pdoc)
{
printf("open file %s failedn","scd.xml");
exit(1);
}
proot=xmlDocGetRootElement(pdoc);
if(NULL==proot)
{
printf("find root failedn");
exit(1);
}
if(xmlStrcmp(proot->name,(const xmlChar *)"变电站")!=0)//汉字
{
printf("no MAC matchn");//输出
exit(1);
}
xml里面有变电站这三个汉字,我按字符处理,但是结果输出“no MAC match”,这是怎么回事?
|
楼主的源代码不是UTF-8?
|
++
要么XML不是UTF8的,要么楼主代码里那个“变电站”不是UTF8的,楼主file xxx看一下编码吧。
|
libxml好像只支持UTF-8,如果碰到其他编码,可以用iconv来转换。