我有一个UTF-8 BOM编码的文件。它有一个字符x9F (DEC159),即'Ÿ‘字符。IE和Firefox都无法解析此文件。编码元素为encoding="UTF-8“。我读到一些较老的浏览器拒绝显示x80 - x9F,但这是特定于HTML的。你知道为什么IE和FF会在这个问题上犯错吗?
发布于 2012-08-05 17:26:48
ASCII字符都在128以下。拉丁语-1在x80 - x9F处有控制代码,而不是字符,同样,Unicode在代码点U+0080到U+009F处有控制代码。如果你的文本中有字符U+009F,那就错了;它应该是U+0178,Ÿ;。如果文件中只有单字节的x9F,那就大错特错了;必须用UTF8对大于127的字符进行编码才能工作。
发布于 2012-08-04 08:47:59
这实际上是一个常见的问题。
根据规范,XML应该支持UTF-8BOM,但实际上只有少数解析器接受它。根据你的评论,似乎连IE和Firefox都没有做到这一点,至少对于你正在使用的版本是这样的。
你能做什么?没什么。只是这些解析器还不够好。
https://stackoverflow.com/questions/11802652
复制相似问题