日期:2014-05-19  浏览次数:20605 次

iso-8859-1编码的XML文档解析时乱码该怎么解决
一个远程的XML,编码是iso-8859-1,无法更改,所以不要告诉我更改源文件的编码来解决问题。
用IE打开时中文乱码,用记事本就正常,使用XmlDocument和XmlTextReader解析中文都是返回乱码
xml文档:
<?xml   version= "1.0 "   encoding= "iso-8859-1 "   ?>  
-   <root>
-   <doc>
    <UNID> CD425D8F21323CE5482572C10005F820 </UNID>  
    <FLOWLOGID> 1B2ECAD997DCC609482572C10010DE96 </FLOWLOGID>  
    <DbName> weboa/WEBOA_RECEIVEFILE.NSF </DbName>  
    <FileFormat> &Ecirc;&Otilde;&Icirc;&Auml; </FileFormat>  
    <Sender> CN=×&THORN;&ETH;&iexcl;&Egrave;&Ugrave;/OU=&sup3;§&sup3;¤&sup1;¤×÷&sup2;&iquest;/OU=&sup3;&Oslash;&Igrave;&para;&Euml;&reg;&Aacute;&brvbar;·&cent;&micro;&ccedil;&sup3;§/O=CTHD </Sender>  
    <SendDate> 2007-04-18   11:04:15 </SendDate>  
    <DocMark> &Ecirc;&Otilde;&Icirc;&Auml; </DocMark>  
    <UrgentLevel> &frac14;± </UrgentLevel>  
    <Subject> &sup1;&Oslash;&Oacute;&Uacute;&sup2;&Icirc;&frac14;&Oacute;&frac14;&macr;&Iacute;&Aring;&sup1;&laquo;&Euml;&frac34;&Eacute;è±&cedil;&micro;&atilde;&frac14;ì&para;¨&ETH;&THORN;&sup1;&Uuml;&Agrave;í&Aring;à&Ntilde;&micro;°à&micro;&Auml;&Iacute;¨&Ouml;&ordf;(&sup3;&Oslash;&Igrave;&para;&micro;&ccedil;&sup3;§&Ecirc;&Otilde;&Icirc;&Auml;) </Subject>  
    </doc>
    </root>

------解决方案--------------------
我也没遇到过,先转化一下编码试试
string xml = ....读取xml到string

System.Text.Encoding encode = System.Text.Encoding.GetEncoding( "iso_8859-1 ");
xml = System.Text.Encoding.UTF8.GetString(encode.GetBytes(xml));

XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);