我有一个 ASP Access 数据库,其中包含各种欧洲语言的字符串。该数据库由各自国家的代理商事先填充。如您所料,它包含带有重音等字符的条目。如果我用 MS Access 打开数据库,这些字符显示得很好。例如,“Open”的德语等价物显示为“Öffnen”(希望您能看到上面有 2 个点的“O”!)。
我有读取数据库并以 XML 格式返回记录的 ASP 代码。文本被传递给 XMLEncode 以构造 XML,但这似乎只处理 5 个特殊字符,如“<”、“&”等。如果我转储 XML,重音字符不会改变。
<English>Open</English>
<German>Öffnen</German>
如果我用 Wireshark 查看原始数据包,我发现“Ö”字节是十六进制 D6,这似乎是十进制 Unicode 和 ISO 8859-1 值。
当我尝试在客户端 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?
我需要做什么才能让浏览器正确显示这些内容?