アプリの共通 API 内の xml ファイルを読み取るために、stax パーサーを使用しています。APIはinputstreamをパラメータとして取り、私は以下のようなことをしています
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: ParseError at [row,col]:[1,41] メッセージ: プロローグではコンテンツを使用できません。
共通 API の署名を変更できません。入力ストリームで操作する必要があります..何か提案はありますか?