2016-03-17 119 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 = ... 
}