【发布时间】:2008-11-06 15:52:00
【问题描述】:
我通过扩展默认处理程序在 Java 中实现了 SAX 解析器。 XML 在其内容中有一个ñ。当它击中这个角色时,它会破裂。我在字符方法中打印出 char 数组,它只是以 ñ 之前的字符结束。解析器似乎在此之后停止,因为即使还有更多内容,也没有调用其他方法。即 endElement 方法不再被调用。有没有人遇到过这个问题或对如何处理有任何建议?
【问题讨论】:
我通过扩展默认处理程序在 Java 中实现了 SAX 解析器。 XML 在其内容中有一个ñ。当它击中这个角色时,它会破裂。我在字符方法中打印出 char 数组,它只是以 ñ 之前的字符结束。解析器似乎在此之后停止,因为即使还有更多内容,也没有调用其他方法。即 endElement 方法不再被调用。有没有人遇到过这个问题或对如何处理有任何建议?
【问题讨论】:
文件的编码是什么?确保文件的编码修饰与其匹配。您的解析器可能默认为 ascii 或 ISO-8859-1。你可以像这样设置编码
<?xml version="1.0" encoding="UTF-8"?>
UTF-8 将覆盖该字符,只需确保这是文件实际所在的内容。
【讨论】:
如果您以 ASCII 格式保存 XML,则只能使用 8 位字符表的下半部分(前 128 个字符)。要在 XML 中包含重音字符或其他非英语字符,您必须将 XML 保存为 UTF-8 或转义您的字符,如 ñ对于ñ。
【讨论】:
我遇到了这个问题。您提供的 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");
【讨论】: