2016-03-17 50 views
0

我要讀包含特殊字符,像一個XML。如何在使用xmldocument讀取xml時使用Encoding,因爲不使用讀取器。如何讀取C#中的特殊字符的XML?

XDocument xml = XDocument.Load(file.FullName); 
var q = from p in xml.Descendants("xyz") 
     select new abc() 
+0

如果它是'?',那麼文件可能是UTF8。奇怪它不是自動識別的。 – xanatos

+0

在StreamReader的,我們可以使用Encoding.UTF8.How使用LINQ – VShetty

+1

嘗試使用'(VAR SR =新的StreamReader(file.FullName,Encoding.UTF8)){風險XML = XDocument.Load(SR)讀取XML時使用;變種Q = ...}' – xanatos

回答

0

可能是XDocument.Load沒有使用正確的編碼。從你的例子(Ã)似乎該文件是UTF8。你可以嘗試強制編碼:

using (var sr = new StreamReader(file.FullName, Encoding.UTF8)) 
{ 
    var xml = XDocument.Load(sr); 
    var q = ... 
}