SAXParser 在遇到无效字符时不会抛出异常

发布于 2024-12-29 22:17:37 字数 406 浏览 0 评论 0原文

如果我在 ansi xml 文件中放入一个 utf8 字符 » 并尝试使用 SAXParser 解析它,那么它的解析不会出现任何错误。为什么它没有抛出任何异常?

示例 xml 文件。保存为ansi编码。 Chrome 无法打开该文件,但 saxparser 解析它没有错误。

<?xml version="1.0" encoding="UTF-8"?>
 <root date="2010-06-17">
 <product
    id="1 "
    label= « xyz"/>
 </root>

w3c xml验证器也无法检查此文档。

If i put a utf8 character » inside and ansi xml file and try to parse it with SAXParser then it is parsed without any error. Why it is not throwing any exception?

sample xml file. Save it as ansi encoding. Chrome unable to open the file but saxparser parses it without error.

<?xml version="1.0" encoding="UTF-8"?>
 <root date="2010-06-17">
 <product
    id="1 "
    label= « xyz"/>
 </root>

w3c xml validator is also unable to check this document.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我不是你的备胎 2025-01-05 22:17:37

该文件可能仍然格式良好。

我没有检查所有 ANSI 字符集,但 Windows-1252 中存在 » (U+00BB)。如果将 UTF-8 编码的字节序列 C2 BB 转储到 Windows-1252 编码文件中,它仍然是该编码的合法字节序列。 它将被视为字符序列 » (U+00C2 U+00BB)。

The document is likely still well formed.

I haven't checked all the ANSI character sets, but » (U+00BB) is present in Windows-1252. If you dump the UTF-8 encoded byte sequence C2 BB into a Windows-1252 encoded file it would still be a legal byte sequence for that encoding. It would be treated as the character sequence » (U+00C2 U+00BB).

迟月 2025-01-05 22:17:37

» 如下:

  • U+00BB:Unicode 代码点
  • c2 bb :以 UTF-8 编码
  • 00 bb :以 UTF-16 编码
  • bb :以 8859-1/Windows 1252 编码

如果将“c2 bb”放入以下文件中被读取为 win-1252 它将出现 »。不需要有任何错误。

» is the following:

  • U+00BB: Unicode code point
  • c2 bb : Encoded in UTF-8
  • 00 bb : Encoded in UTF-16
  • bb : Encoded in 8859-1/Windows 1252

If you put "c2 bb" in a file that is being read as win-1252 it will come out ». There is no error needed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文