2

我通过扩展默认处理程序在 Java 中实现了 SAX 解析器。XML 在其内容中有一个ñ。当它击中这个角色时,它会破裂。我在字符方法中打印出 char 数组,它只是以 ñ 之前的字符结束。解析器似乎在此之后停止,因为即使还有更多内容,也没有调用其他方法。即 endElement 方法不再被调用。有没有人遇到过这个问题或对如何处理有任何建议?

4

3 回答 3

4

文件的编码是什么?确保文件的编码修饰与其匹配。您的解析器可能默认为 ascii 或 ISO-8859-1。您可以像这样设置编码

<?xml version="1.0" encoding="UTF-8"?>

UTF-8 将覆盖该字符,只需确保这是文件实际所在的内容。

于 2008-11-06T16:18:40.137 回答
3

如果您以 ASCII 格式保存 XML,则只能使用 8 位字符表的下半部分(前 128 个字符)。要在 XML 中包含重音字符或其他非英语字符,您必须将 XML 保存为 UTF-8 或转义您的字符,如 ñ 对于ñ。

于 2008-11-06T16:20:22.537 回答
0

我遇到了这个问题。您提供的 XML 流必须我读为 ascii,在代码中将 ascii 编码为“UTF-8”或将其更改为字符流,一切都会好起来的。

这样的事情会帮助你:

File F = new File(C://Location);
BuffeReader Readfile = new BufferReader(F);
InputSource Encode = new InputSource(Readfile);
Encode.setEncoding("UTF-8");
于 2015-12-29T21:26:24.287 回答