iso-8859-1编码的XML文档解析时乱码该怎么解决

mickeygg 2007-04-18 05:00:06
一个远程的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>ÊÕÎÄ</FileFormat>
<Sender>CN=×ÞСÈÙ/OU=³§³¤¹¤×÷²¿/OU=³Ø̶ˮÁ¦·¢µç³§/O=CTHD</Sender>
<SendDate>2007-04-18 11:04:15</SendDate>
<DocMark>ÊÕÎÄ</DocMark>
<UrgentLevel>¼±</UrgentLevel>
<Subject>¹ØÓڲμӼ¯ÍŹ«Ë¾É豸µã¼ì¶¨ÐÞ¹ÜÀíÅàѵ°àµÄ֪ͨ(³Ø̶µç³§ÊÕÎÄ)</Subject>
</doc>
</root>
...全文
792 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mickeygg 2007-04-19
  • 打赏
  • 举报
回复
问题解决了,原来那个XML实际编码是gb2312,但却指定iso-8859-1作为它的编码
mickeygg 2007-04-18
  • 打赏
  • 举报
回复
还是不行,我是这样转换的
doc.Load("http://localhost/portal/neiwang.xml");
XmlNodeList nodes = doc.GetElementsByTagName("Subject");
XmlNode node = nodes[0];
string iString = node.InnerText;//这里是乱码的字符串

//进行字符编码转换
Encoding iso = Encoding.GetEncoding("iso-8859-1");
Encoding unicode = Encoding.Unicode;
byte[] ib = iso.GetBytes(iString);

byte[] ub = Encoding.Convert(iso, unicode, ib);
string uString = unicode.GetString(ub);
Response.Write(uString);
babyrockxray 2007-04-18
  • 打赏
  • 举报
回复
我也没遇到过,先转化一下编码试试
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);
mickeygg 2007-04-18
  • 打赏
  • 举报
回复

62,069

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧