この記事は、Microsoft XML パーサー (MSXML) を使用して特殊文字を含む XML (Extensible Markup Language) を解析するときのエラーを解決するのに役立ちます。
元の製品バージョン: .NET Framework
元の KB 番号: 238833
症状
Microsoft XML パーサー (MSXML) を使用して特殊文字を含む XML を解析する場合、パーサーは最初の特殊文字の行と位置に次のエラー メッセージを報告することがあります。
テキスト コンテンツに無効な文字が見つかりました。
原因
XML ドキュメントが適切な文字エンコード スキームでマークされていません。
解決策
- XML 処理命令で適切なエンコード方式を指定します。
- XML データを適切な UTF-8 として再エンコードします。
ステータス
この動作は設計によるものです。
詳細情報
特殊文字とは、0x00の標準のアメリカ標準コード (ASCII) 文字セットの範囲外の文字 (アクセント、ウムラウト、その他の分音記号を含むラテン文字など) 0x7Fを指します。 XML ドキュメントの既定のエンコード 方式は UTF-8 で、値が 0x80 以上の ASCII 文字を他の標準エンコード 方式とは異なる方法でエンコードします。
ほとんどの場合、この問題は、単純な iso-8859-1 エンコード スキームを使用するデータを操作している場合に発生します。 この場合、最も簡単な解決策は、通常、「 Resolution 」セクションの最初の一覧です。 たとえば、次の XML 宣言を使用します。
<?xml version="1.0" encoding="iso-8859-1" ?>
<rootelement>
...XML data...
</rootelement>
代わりに、数値エンティティ参照を使用して、これらの各文字をエンコードできます。 たとえば、特殊文字 áを使用したり、 <test> á</test>
(10 進バージョン) または <test>á</test>
(16 進バージョン) を使用できます。