1

我的 XML 响应是

<name> DPD futár </name>

我的 XML 解析代码

        SAXParserFactory _saxFactory = SAXParserFactory.newInstance();
        SAXParser _saxParser = _saxFactory.newSAXParser();
        XMLReader _xmlReader = _saxParser.getXMLReader();
        _shippingMethodList = new ArrayList<ShippingMethodItem>();
        ShippingMethodParser _cartLoginParser = new ShippingMethodParser(
                _shippingMethodList);
        _xmlReader.setContentHandler(_cartLoginParser);
        InputSource is = new InputSource();
        is.setEncoding("ISO-8859-1");
        is.setCharacterStream(new StringReader(response));
        _xmlReader.parse(is);

但是我在我的名字变量中得到了以下字符串。

DPD 未来

我也尝试

is.setEncoding("UTF-8");

但没有获得成功。有人可以帮我解决这个问题吗?

4

2 回答 2

1

试试这个

InputSource in = new InputSource(new InputStreamReader(url.openStream(),"ISO-8859-1"));
于 2013-02-27T13:14:14.530 回答
0

您不应该对匈牙利数据使用 ISO-8859-1(拉丁 1)编码,因为它不包含ő. 例如,该字母á也是葡萄牙语和西班牙语字母表的一部分,两者都受 latin 1 支持,但在匈牙利语的情况下,只有 latin 2 (ISO-8859-2) 可以使用。但是,您应该始终尽可能使用 unicode 编码。

首先,我会检查接收到的数据是否正确编码,因为当您将字符串编码为 un​​icode 时也可能发生错误。您提供的示例是典型的编码错误。也许您正在尝试将 UTF-8 编码为错误的 UTF-8。

于 2013-02-27T12:47:51.793 回答