使用DOM Android从Xml读取UTF8和Cp1256

时间:2014-05-26 19:15:43

标签: java android xml dom utf-8

我正在使用DOM对象来读取包含阿拉伯数据的xml,其中所有行都是用UTF-8编写的,除了用CP1256编写的一行,在解析它时,它默认解析为UTF-8女巫给予"奇怪的字母"对于CP1256系列,如何告诉DOM解析器将此行解析为CP1256, 请检查XML:http://alingilalyawmi.org/rss/v2/evangelizo_rss-maa.xml 在notepad ++中打开它时,您会发现在将编码更改为cp1256之前,内部数据是不可读的。

1 个答案:

答案 0 :(得分:1)

如果您知道如何隔离一行,则可以打开输入流。然后创建自己的Reader类,包含两个InputStreamReaders,一个配置为UTF8,另一个配置为CP1256。然后使用UTF8阅读器,直至到达CP1256线路,切换到另一个阅读器并再次返回。最后,只需在自定义阅读器类上使用解析器。您必须为解析器创建一个InputStream。来自文档:

The SAX parser will use the InputSource object to 
determine how to read XML input. If there is a 
character stream available, the parser will read 
that stream directly, disregarding any text encoding
declaration found in that stream.