Предполагая этот входной XML
<?xml version="1.0" encoding="UTF-16"?>
<test></test>
Написание этих строк кода:
StreamSource source = new StreamSource(new StringReader(/* the above XML*/));
StringWriter stringWriter = new StringWriter();
StreamResult streamResult = new StreamResult(stringWriter);
TransformerFactory.newInstance().newTransformer().transform(source, streamResult);
return stringWriter.getBuffer().toString();
Выводит для меня этот XML:
<?xml version="1.0" encoding="UTF-8"?>
<test></test>
(объявленная кодировка UTF- 16 преобразуется в стандартную UTF- 8 )
Я знаю, что могу явно запросить вывод UTF-16
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-16");
Но вопрос в том, как сделать так, чтобы выходная кодировка автоматически совпадала с вводом?