Web から取得したコンテンツを解析する必要があり、特殊文字が含まれている可能性があります。この場合、コンテンツ文字列は次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<products>
<product>
<id>1</id>
<price>2.14</price>
<title>test ž test</title>
上記のコンテンツがメソッド characters() に渡されると、org.xml.sax.helpers.DefaultHandler から拡張されたクラスで次のようになります。
public class ProductsXMLHandler extends DefaultHandler {
...
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
String elementValue = new String(ch, start, length);
...
}
test ž test
配列が「test」、「」、「test」の 3 つの配列に分割されていることに気付きました。そのため、結果となるž
要素値が等しく test ž test
ありません。問題を解決する方法を知っている人はいますか?
ソース文字列を再コード化する必要がありますか:
<?xml version="1.0" encoding="UTF-8"?>
<products>
<product>
<id>1</id>
<price>2.14</price>
<title>test ž test</title>
XML ハンドラ クラスに渡される前に?
ありがとうございました!