Stax解析器无法读取编码为UTF-16的文件

时间:2013-05-04 12:12:43

标签: java stax

我正在使用stax解析器在我的应用程序中读取公共api中的xml文件。 api将输入流作为参数,我正在执行类似下面的操作

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,则它无法正确读取..给出以下异常

  

javax.xml.stream.XMLStreamException:[row,col]处的ParseError:[1,41]   消息:prolog中不允许使用内容。

我无法更改常见API的签名。我需要对输入流进行操作..有什么建议吗?

1 个答案:

答案 0 :(得分:1)