に無効な文字が私はUTF-8でエンコードされたXMLなXmlException:XMLリーダーのバージョンの下に使用する場合、所与の符号化
<?xml version="1.0" encoding="UTF-8"?>
を有します。私はこれがXMLファイルを解析するためにUTF-8エンコーディングを使用していると仮定しています。
using (XmlReader reader = XmlReader.Create(inputUri))
私は例外以下になります。 XMLReaderの
using (XmlReader reader = XmlReader.Create(new StreamReader(inputUri,Encoding.UTF8)))
のバージョンの下に使用している場合
System.Xml.XmlException occurred
HResult=-2146232000
LineNumber=18750
LinePosition=13
Message=Invalid character in the given encoding. Line 18750, position 13.
しかし、XMLが正常に解析されます。なぜ、これらの2つのバージョンの間にこのような違いがあるのかは、同じエンコーディングを使用して、指定されたXMLファイルを解析するのですか?
PS:最初のバージョンではUTF-8エンディングが使用されていることは間違いありません。
は以下インスタンス最初のバージョンによって返されるXmlTextReaderImpl.csからの抜粋です。
private void SetupEncoding(Encoding encoding) {
if (encoding == null) {
Debug.Assert(ps.charPos == 0);
ps.encoding = Encoding.UTF8;
ps.decoder = new SafeAsciiDecoder(); // This falls back to UTF-8 decoder
}
}
使用している.netバージョンはどれですか? – Prajwal
.Net Framework 4.5 – Sameer