0
我正在使用stax解析器來讀取我應用程序中通用api內的xml文件。該API採用的InputStream作爲參數,我在做類似下面Stax解析器無法讀取編碼爲UTF-16的文件
public Object <commonApi>(InputStream is)
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
XMLEventReader reader = inputFactory.createXMLEventReader(is);
try{
while (parser.hasNext()) {
XMLEvent event = parser.nextEvent();
// reaming parsing logic
}
} Catch (Exception e){
e.printStackTrace();
}
}
的問題是這樣的工作,如果在XML文件中的編碼是UTF-8。如果是UTF-16,然後它不讀取properly..gives以下異常
javax.xml.stream.XMLStreamException:ParseError在[行,列]:[1,41] 消息:序言中不能有內容。
我無法更改通用api的簽名。我需要對輸入流進行操作..有什麼建議嗎?
我的代碼必須適用於UTF-8和UTF-16或任何其他有效的編碼。所以,我需要一個通用的方式, – user2349699 2013-05-04 12:31:04
@ user2349699:不可能的。請參閱http://stackoverflow.com/a/14196597/309483 – 2013-05-04 12:37:34