一些匈牙利字符在android中无法正常显示

时间:2013-02-27 12:35:36

标签: android

我的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);

但我在我的名字变量中跟随字符串。

  

DPDfutár

我也尝试用

is.setEncoding("UTF-8");

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

2 个答案:

答案 0 :(得分:1)

试试这个

InputSource in = new InputSource(new InputStreamReader(url.openStream(),"ISO-8859-1"));

答案 1 :(得分:0)

您不应对匈牙利数据使用ISO-8859-1(拉丁语1)编码,因为它不包含ő等国家字符。例如,á字母也是葡萄牙语和西班牙语字母表的一部分,两者都得到拉丁语1的支持,但就匈牙利语而言,只有拉丁语2(ISO-8859-2)可以使用。但是,您应该尽可能使用unicode编码。

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