SAX解析器打破ñ

时间:2008-11-06 15:52:01

标签: java xml encoding sax

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

3 个答案:

答案 0 :(得分:4)

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

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

UTF-8将覆盖该角色,只需确保该文件实际存在于其中。

答案 1 :(得分:3)

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

答案 2 :(得分:0)

我遇到了这个问题。你正在喂食的XML流必须我读作ascii,编码ascii到&#39; UTF-8&#39;在代码内或将其更改为字符流,一切都会好的。

这样的事情会对你有所帮助:

File F = new File(C://Location);
BuffeReader Readfile = new BufferReader(F);
InputSource Encode = new InputSource(Readfile);
Encode.setEncoding("UTF-8");