Chrome上的编码问题而不是IE

时间:2010-11-02 18:05:03

标签: exception encoding google-chrome internet-explorer-8 linq-to-xml

创建XDocument时,我收到一条带有以下消息的XmlException:

system does not support 'iso-8859-1' encoding line 1, position 31

Xml文档的第一行如下所示:

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>

以下是我用来创建文档的代码:

 xDoc = XDocument.Load(webResponse.GetResponseStream());

奇怪的是,异常发生在Chrome和Firefox上,而不是IE8。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

许多浏览器不支持此编码。基本上,您可以为您尝试显示的任何语言安装字体(我假设这就是您使用该编码的原因)。然后,您可以嵌入该字体以在任何本地计算机上使用。

  • code.google.com/p/chromium/issues/detail?id=31510
  • bugs.webkit.org/show_bug.cgi?id=22339

答案 1 :(得分:0)

下载由OData的.NET Web服务(由IIS 7本地提供)生成的xml文档时,我看到了类似的行为。它显示基于浏览器的不同内容类型。内容类型标头以及xml文件的第一行都在变化。将断点放入并检查“HttpWebResponse”对象或使用Fiddler显示:

content-type: "application/xml;charset=utf-8"         (IE)
content-type: "application/xml;charset=iso-8859-1"    (Chrome)

比较xml的第一行

<?xml version="1.0" encoding="utf-8" standalone="yes"?>      (IE)
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> (Chrome)

这导致Chrome上的默认XDocument.Load(webResponse_stream)失败。