Привет, у меня есть простой код:
InputSource is = new InputSource(new StringReader(xml))
Document d = documentBuilder.parse(is)
StringWriter result = new StringWriter()
DOMSource ds = new DOMSource(d)
Transformer t = TransformerFactory.newInstance().newTransformer()
t.setOutputProperty(OutputKeys.INDENT, "yes");
t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
t.setOutputProperty(OutputKeys.STANDALONE, "yes");
t.setOutputProperty(OutputKeys.ENCODING,"UTF-16")
t.transform(ds,new StreamResult(result))
return result.toString()
, который должен преобразовывать кодировку xml в UTF-16. Хотя внутреннее представление String в jvm уже использует символы UTF-16, насколько я знаю, но я ожидаю, что в результате String должен содержать заголовок, для которого задана кодировка "UTF-16", originla xml, где это был UTF-8 но я получаю:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
(также похоже, что автономное свойство неверно)
Экземпляр преобразователя: com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl
(что я думаю по умолчанию)
Так чего мне здесь не хватает?