-3

我在 android 中使用 SAX Parser。我不得不像这样更改 EventHandler:

else if(xGrowerNotes){
              profile.setGrowerNotes(profile.getGrowerNotes()+chars);
              //random bug
          }

我有 4 种语言的 XML 文件版本,UTF-8 编码。我用

is.setEncoding("UTF-8");

3 种语言工作正常,但是,西班牙的一种让我很困扰。它开始就像没有 apretar las plantas。Regul ...并且该事件被调用了2次。没有改变的意思是,它会削减第一部分并仅将“ar las plantas. Regul ...”设置为文本。如果我在字符串前面添加“test 1 2 3”,则剪切移动,这意味着前 13 个字符被剪切了。它仅在西班牙语版本中,所有文档均采用相同编码。在文本末尾添加“test 1 2 3”会扩展第二个字符串。

有人可以澄清一下吗?提前致谢!

4

1 回答 1

0

文档中:

Parser 将调用此方法来报告每个字符数据块。SAX 解析器可以在单个块中返回所有连续的字符数据,也可以将其拆分为多个块;但是,任何单个事件中的所有角色都必须来自同一个外部实体,以便定位器提供有用的信息。

这意味着您不能假设在一次调用中获取所有字符数据。必须附加可能在多个调用中报告的所有块以获取完整数据。

于 2013-02-11T12:17:15.477 回答