0

我正在解析传入的 xml 提要,在 android 中使用它在应用程序小部件中,问题是法语字符没有像这样在 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();

有没有办法摆脱这些奇怪的字符?

谢谢。

4

2 回答 2

2

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

在 XML 中,您通常会预先获得元信息,例如<?xml version="1.0" encoding="utf-8"?>. 您应该使用元信息中的编码值进行正确编码。

代码中的另一个问题是,您基本上绕过了使用 line 的编码Document dom = builder.parse(isrc.getByteStream());。你应该通过InputSource

Document dom = builder.parse(isrc);.

我实际上Reader在下面的代码中使用了 as ,因为我直接使用了 Java 的编码:

Document dom = builder.parse(
    new InputSource(
        new InputStreamReader(
                feed.openStream(),
                "[encoding goes here, usually UTF-8]")));
于 2013-09-18T09:30:25.030 回答
1

请看这个

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

于 2013-09-18T09:08:42.850 回答