0

當創建一個XDocument我得到以下消息的XmlException:編碼問題,而不是IE

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()); 

奇怪的是,異常發生在Chro我和Firefox,但不是IE8。

任何想法?

+0

你的問題到底是什麼?畢竟,錯誤消息似乎相對清楚。你需要使用iso-8859-1嗎? – 2010-11-02 18:06:56

+0

我該如何解決這個問題? Chrome中是否存在需要檢查的設置?爲什麼發生在Chrome瀏覽器而不是IE8?當我加載造成這種情況發生的文檔時,我在做/不做某事嗎? – 2010-11-02 18:15:09

回答

0

許多瀏覽器不支持此編碼。基本上,你可以安裝任何你想顯示的語言字體(我假設這就是你使用該編碼的原因)。然後,您可以嵌入該字體以在任何本地機器上使用。

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

我看到類似的下載由OData的.NET Web服務(由IIS 7在本地提供)生成的xml文檔時的行爲。它基於瀏覽器顯示不同的內容類型。內容類型頭文件以及xml文件的第一行都在改變。在把一個斷點和檢查「HttpWebResponse」對象或使用招示出:

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) 

這導致默認XDocument.Load(webResponse_stream)至在Chrome上失敗。