XmlDocument.Loadを使用して、タイ語でいくつかの文字を含むXMLファイルの内容をロードしています。アプリケーションは、次の例外を除いてエラーになります。System.Xml.XmlException:指定されたエンコーディングで無効な文字
System.Xml.XmlException:指定されたエンコーディングの文字が無効です。 System.Xml.XmlTextReaderImpl.GetChars(のInt32 maxCharsCountでSystem.Xml.XmlTextReaderImpl.InvalidCharRecoveryでSystem.Xml.XmlTextReaderImpl.Throw(例外e) のライン2、位置82(のInt32 & bytesCount、 のInt32 & charsCount) ) System.Xml.XmlTextReaderImpl.FinishPartialValue()で& endposの、 のInt32 & outOrChars) System.XmlのでSystem.Xml.XmlTextReaderImpl.ParseText(のInt32 & startPosでSystem.Xml.XmlTextReaderImpl.ReadData()、のInt32で.XmlTextReaderImpl.get_Value()at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)at XMLファイルには、このコンテンツ
お知らせ閉じる前に奇妙な文字で始まる System.Xml.XmlDocument.Load(XmlReaderのリーダー)
でSystem.Xml.XmlLoader.LoadDocSequence(常にXmlDocument parentDoc)タグ。このコンテンツはサードパーティ製のもので、ファイル/コンテンツにアクセスすることはできません。
私の質問は以下のとおりです。
-
コンテンツに登場する不思議なキャラクターがサードパーティプロバイダからの私の に送られるのはなぜ
- ?
- 処理する前にそのコンテンツを変更するための アクセス権がないため、正常に完了する方法はありますか(XmlDocumentに読み込みます)。
XmlReaderSettings.CheckCharacters = falseを使用します。しかし、より良い - 第三者に連絡して問題を解決するように依頼してください。有効なxmlではないようです。 – Evk
唯一の有用な推奨事項は、SOのジョブセクションのチェックを開始することです...そのサードパーティーと協力して有効なXMLを返すことができない場合、ドキュメントを正しく再構成できないため、完全にスタックされています(文書内のその他のものはどう思いますか?)実際に、 HTMLAgilityPackを使用して、そのテキストを代わりに読み込むか、ストリームから無効なUTF8バイトを手動で取り除くのと同じように... –
実際にサードパーティの問題であり、ファイルが存在することを確認してくださいあなた自身によって損なわれていない(例えば、utf-8以外のエンコーディングを間違っていると仮定して読むことによって)。 – Evk