さまざまなヨーロッパ言語の文字列を含むASPAccessデータベースがあります。データベースには、それぞれの国のエージェントが事前に入力していました。予想どおり、アクセント付きなどの文字を含むエントリが含まれています。MS Accessでデータベースを開くと、これらの文字は正常に表示されます。たとえば、ドイツ語で「Open」に相当するものは「Öffnen」と表示されます(上に2つのドットが付いた「O」が表示されることを願っています!)。
データベースを読み取り、XMLでレコードを返すASPコードがあります。テキストはXMLEncodeに渡されてXMLが作成されますが、これは「<」、「&」などの5つの特殊機能のみを処理しているようです。XMLをダンプしても、アクセント記号付きの文字は変更されません。
<English>Open</English>
<German>Öffnen</German>
Wiresharkで生のパケットを見ると、「Ö」バイトが16進数のD6であることがわかります。これは、UnicodeとISO8859-1の10進数の値のようです。
問題は、クライアント側のJSでXMLを解析しようとしたときに始まります。私は得る:
"An invalid character was found in text content"
IEから。FFとChromeは問題なくXMLを受け入れますが、ブラウザには「Ö」文字が中に疑問符が付いたひし形で表示されます。
http://www.validome.org/xml/validate/は「エンコーディングエラー」を報告します。
http://www.w3schools.com/dom/dom_validate.aspは、問題ないと考えています。
XMLはUTF-8でエンコードされています。
IEに苦情なしでXMLを受け入れさせるにはどうすればよいですか?
ブラウザに正しく表示させるにはどうすればよいですか?