Android中的XML解析编码问题?
我在android中解析一个传入的xml提要,以便在应用程序widget中使用它,问题是法语字符在该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
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”时,一切正常