2012-03-28 34 views
1

我正在嘗試讀取其中包含一些中文字符的XML文件。在文件中寫入信息時,編碼UTF-8會正常工作,並且中文字符會正確寫入文件中。但是,當我嘗試閱讀它顯示一些?????代替。如何在編碼中讀取XML文件utf-8

我只是想知道是否有人已經遇到白衣這個問題,可以給我一些線索。

+2

它在哪裏顯示'???'?在控制檯中,IDE,...?可能是與控制檯相關的代碼頁無法正確顯示Chineese字符。 – Attila 2012-03-28 15:17:39

回答

6

首先,請確保該數據是UTF8實際上可讀的,你這樣做的方式是:

  • 下載一個記事本,可以讓你指定的編碼被用來查看文檔一樣Notepad2
  • 在的Notepad2打開文檔
  • 文件 - >編碼 - > UTF8

如果你看到同樣的亂碼的文字,你實際上並沒有創造UTF8編碼的XML,但別的東西。

回到你的問題:
既然你不給我們提供了很多信息,你如何解析在這裏擺在首位的XML的是你將如何具體使用UTF8解析它的例子:

var xmlDoc = XDocument.Parse(
       File.ReadAllText("filelocation", System.Text.Encoding.UTF8)); 

XDocument類是System.Xml.Linq命名空間的一部分。

此外,如果你想優化這個你可能不想傳入一個流而不是包含整個XML文檔的字符串。

+0

謝謝你的回答! – Shanoo 2012-03-30 14:53:25

+1

@Shanoo既然您的新手如此:如果您發現答案有幫助,您可以做兩件事:按下答案旁邊的向上按鈕表決它,如果答案是您的問題,也可以通過單擊接受答案旁邊downvote下面的答案按鈕 – ntziolis 2012-03-30 18:31:57