ACII エンコードされた XML ファイルがあります。
2 つの異なる Microsoft XmlReader 実装を使用して、それを読み取ろうとしました。
XmlReader.Create(new StreamReader(fileImport.FileContent, true));
new XmlTextReader(fileImport.FileContent)
1 つ目の XmlReader.Create は、エンコーディングに StreamReader を使用し、うまく機能します。
2 番目の新しい XmlTextReader は、「指定されたエンコーディングでは無効な文字です」というメッセージとともに XmlException をスローします。
これらの両方の MSDN ドキュメントを読むと、どちらもバイト オーダー マークからエンコーディングを検出するはずであり、それが失敗した場合は UTF-8 にフォールバックします。
XmlTextReader
[msdn]
StreamReader
[msdn]
では、XmlTextReader は無効なエンコーディングで失敗し、StreamReader は失敗しないのに、両方の実装が既定で同じようにエンコーディングを処理するとドキュメントに記載されているのはなぜでしょうか?