Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中的XML解析编码问题?_Android_Xml_Utf 8_Character Encoding_Xml Parsing - Fatal编程技术网

Android中的XML解析编码问题?

Android中的XML解析编码问题?,android,xml,utf-8,character-encoding,xml-parsing,Android,Xml,Utf 8,Character Encoding,Xml Parsing,我在android中解析一个传入的xml提要,以便在应用程序widget中使用它,问题是法语字符在该xml中的编码不正确,如下所示: Super Promo � l'incontournable Alhambra Thalasso 5* Hammamet : La nuit du 29/08 � seulement 107.185 DT au lieu de 126.100 DT en LPD 我像这样解析文件: InputSource isrc = new Inpu

我在android中解析一个传入的xml提要,以便在应用程序widget中使用它,问题是法语字符在该xml中的编码不正确,如下所示:

Super Promo � l'incontournable Alhambra Thalasso 5* Hammamet : La nuit du 29/08 � seulement 107.185 DT au lieu de 126.100 DT  en LPD
我像这样解析文件:

            InputSource isrc = new InputSource(this.feed.openStream());
            isrc.setEncoding("UTF-8");

            DocumentBuilder builder = factory.newDocumentBuilder();
            Document dom = builder.parse(isrc.getByteStream());
            Element root = dom.getDocumentElement();
有没有办法摆脱这些奇怪的角色

谢谢。

请看

我建议尝试使用UTF-16编码一次,请参见


我建议尝试使用UTF-16编码一次

硬编码将编码设置为“UTF-8”,但发送方实际使用的编码是什么

在XML中,通常会预先获得元信息,如
。您应该使用元信息中的编码值进行正确编码

代码中的另一个问题是,
Document dom=builder.parse(isrc.getByteStream())行基本上绕过了编码。您应该传递
InputSource

documentdom=builder.parse(isrc)

实际上,我使用了
读取器
,如下代码所示,因为我直接使用Java编码:

Document dom = builder.parse(
    new InputSource(
        new InputStreamReader(
                feed.openStream(),
                "[encoding goes here, usually UTF-8]")));

您硬编码将编码设置为“UTF-8”,但发送方实际使用的编码是什么

在XML中,通常会预先获得元信息,如
。您应该使用元信息中的编码值进行正确编码

代码中的另一个问题是,
Document dom=builder.parse(isrc.getByteStream())行基本上绕过了编码。您应该传递
InputSource

documentdom=builder.parse(isrc)

实际上,我使用了
读取器
,如下代码所示,因为我直接使用Java编码:

Document dom = builder.parse(
    new InputSource(
        new InputStreamReader(
                feed.openStream(),
                "[encoding goes here, usually UTF-8]")));

谢谢,我看到了这一点,但问题是,xml的生成者不是我,我也没有办法让它正确。我必须找到一个解决方案,按原样处理这个文件。谢谢,我看到了,但问题是,生成xml的不是我,我没有办法让它正确。我必须找到一个按原样处理此文件的解决方案。谢谢,终于找到了问题所在,事实上生产者将xml设置为“utf-8”,但当我将其解析为“ISO-8859-1”时,一切正常谢谢,终于找到了问题所在,事实上生产者将xml设置为“utf-8”,但当我将其解析为“ISO-8859-1”时,一切正常