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

时间:2012-01-27 16:23:24

标签: java xml saxparser

如果我在内部和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 validator也无法查看此文档。

2 个答案:

答案 0 :(得分:0)

该文件可能仍然很好。

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

答案 1 :(得分:0)

»如下:

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

如果将“c2 bb”放入正在读取为win-1252的文件中,它将显示»。没有错误。