最近一个小程序需要读取XML,总是提示字符编码问题,
XML头中没有encoding,
应该怎么做?XmlDocument XDoc = new XmlDocument();
XDoc.Load(@"C:\c.xml");
在Load时就出错了。
里面有一行是:
<lline id="header.1.4">
    <text col="1"
           content="?????????猬????????????猬???????????????猬???????????????????????????猬??????猬??????????????????猬??????????猬?????????????????????猬??????"/>
</lline>

解决方案 »

  1.   

    为什么 不再xml里面指定 encoding="utf-8"
      

  2.   

    大哥,我是读取从别的程序产生的xml。
      

  3.   

    :)
    那你肯定知道是什么编码了吧..加载的时候XmlDocument.Load (Stream) 可以设置它流的编码哈
      

  4.   

    lz:你的xml文件确实有问题,不用XDoc.Load(@"C:\c.xml");
    直接点击打开,网页就会报错!!!我实验了几次,问题应该是写xml出错,不是你读的原因!
    我在记事本编辑xml,写进中文,就会出现这样问题。
    用UltraEdit打开,发现中文变成乱码,在UltraEdit环境下,把乱码改成中文,一切都正常了。
    说明是写xml是格式出了问题。
      

  5.   

    是编码问题
    你应该先把它读成stream然后再load
      

  6.   

    我找到了编码是: iso-8859-1,应该是Windows-1252
    但是怎么设置这种编码呢?
      

  7.   

    现在倒是读取没有问题了,但是SelectNodes,却取不到Node了。
    是不是这里的"//row"也要进行编码?
    还是要把stbefore进行编码转换?StreamReader stbefore = new StreamReader(filename, Encoding.UTF7);
    XmlDocument XDoc = new XmlDocument();
    XDoc.Load(stbefore);XmlNodeList xnl = XDoc.SelectNodes("//row");