我必须解析从网络上获得的内容,它可以包含特殊字符。在这种情况下,内容字符串如下所示:
<?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”,所以 elementValue 不相等 test ž test
,应该是结果。有谁知道如何解决这个问题?
是否需要重新编码源字符串:
<?xml version="1.0" encoding="UTF-8"?>
<products>
<product>
<id>1</id>
<price>2.14</price>
<title>test ž test</title>
在传递给 XML 处理程序类之前?
谢谢!