萨克斯解析和编码
我的联系人在解析RSS和Atom文件时遇到SAX问题。根据他的说法,好像来自Item元素的文本被截断为撇号或有时是带重音的字符。编码似乎也有问题。
我尝试了SAX,但也进行了一些删节操作,但无法进一步挖掘。如果有人曾经解决过这个问题,我将不胜感激。
这是ContentHandler中使用的代码:
public void characters( char[], int start, int end ) throws SAXException {//
link = new String(ch, start, end);
编辑:编码问题可能是由于将信息存储在字节数组中,因为我知道Java在Unicode中工作。
回答:
不能保证character()方法可以一次性为您提供文本元素的完整字符内容-全文可能跨越缓冲区边界。您需要自己在开始和结束元素事件之间缓冲字符。
例如
StringBuilder builder;public void startElement(String uri, String localName, String qName, Attributes atts) {
builder = new StringBuilder();
}
public void characters(char[] ch, int start, int length) {
builder.append(ch,start,length);
}
public void endElement(String uri, String localName, String qName) {
String theFullText = builder.toString();
}
以上是 萨克斯解析和编码 的全部内容, 来源链接: utcz.com/qa/419010.html