日期:2014-05-16  浏览次数:20710 次

用libxml解析文件时里面的汉字怎么处理
我在写程序解析xml文件时里面有汉字,程序大体上是这么写的,但是结果不正确:

  pdoc=xmlReadFile("sss.xml","UTF-8",XML_PARSE_NOBLANKS);
  if(NULL==pdoc)
  {
  printf("open file %s failed\n","scd.xml");
  exit(1);
  }
   
  proot=xmlDocGetRootElement(pdoc);
  if(NULL==proot)
  {
  printf("find root failed\n");
  exit(1);
  }
  if(xmlStrcmp(proot->name,(const xmlChar *)"变电站")!=0)//汉字
  {
  printf("no MAC match\n");//输出
  exit(1);
  }

xml里面有变电站这三个汉字,我按字符处理,但是结果输出“no MAC match”,这是怎么回事?

------解决方案--------------------
楼主的源代码不是UTF-8?
------解决方案--------------------
探讨

楼主的源代码不是UTF-8?

------解决方案--------------------
libxml好像只支持UTF-8,如果碰到其他编码,可以用iconv来转换。