Android SAXParser编码
我在编码方面有问题。首先,可能需要一点代码:Android SAXParser编码,android,xml,encoding,saxparser,Android,Xml,Encoding,Saxparser,我在编码方面有问题。首先,可能需要一点代码: URL xmlUrl = new URL("http://helion.pl/rss/GW/promocje.rss"); SAXParserFactory saxFactory = SAXParserFactory.newInstance(); SAXParser parser = saxFactory.newSAXParser(); XMLReader reader = parser.getXMLReader(); Helion xmlHan
URL xmlUrl = new URL("http://helion.pl/rss/GW/promocje.rss");
SAXParserFactory saxFactory = SAXParserFactory.newInstance();
SAXParser parser = saxFactory.newSAXParser();
XMLReader reader = parser.getXMLReader();
Helion xmlHandler = new Helion();
reader.setContentHandler(xmlHandler);
InputSource inputSource = new InputSource(xmlUrl.openStream());
inputSource.setEncoding("ISO-8859-1");
reader.parse(inputSource);
该文件编码为ISO-8859-2,但当我使用setEncoding(“ISO-8859-2”)时,不会读取该文件。请帮忙
DefaultHandler:
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
currentTagName = qName;
if (TAG_ITEM.equalsIgnoreCase(qName)) {
odczyt = true;
element = new Element();
}
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
String value = new String(ch, start, length);
if (!value.trim().equals("")) {
if (odczyt) {
if (TAG_TYTOL.equalsIgnoreCase(currentTagName)) {
element.setTytol(value);
} else if (TAG_OPIS.equalsIgnoreCase(currentTagName)) {
element.setOpis(value);
}
}
}
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
if (TAG_ITEM.equalsIgnoreCase(localName)) {
odczyt = false;
elementy.add(element);
}
}
}
在代码中,您将其设置为
ISO-8859-1
,这是非常不同的,这可能是问题所在吗?正如Francis Upton提到的,可以在一个XML开始/结束元素中多次调用字符。
你应该这样做:
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
String s = new String(ch, start, length);
if (mTextBuffer == null) {
mTextBuffer = new StringBuffer(s);
} else {
mTextBuffer.append(s);
}
}
然后在endElement方法中调用element.setTytol(mTextBuffer)/element.setOpis(mTextBuffer)当我使用ISO-8859-1时,我会得到一个不完整的文本。我应该得到:a href=“width=“65px”align=“left”src=“。。。。。。我得到了:/a>Nie mog3e¨lepiej trafia!当您将编码设置为
ISO-8859-2
时,会发生什么情况?如果您对此有问题,请将其显示为示例代码,并解释尝试时发生的情况。请在您的答案(通过编辑)中添加更多关于发生的情况的信息,而不是注释。评论太难阅读。请将我的内容切到开头:a href=“width=“65px”align=“left”src=“”title=“Szalona strona fotografii。Niekonwencjonalne i twórcze techniki dla odważnych fotografów“alt=”szastf“/>请显示您的SAX字符方法。这可能是错误实现的。对于单个元素,可以多次调用它。