如何为Xml设置UTF-16编码格式?

4

我需要创建一个字符串形式的XML传递给服务器。我已经成功将数据转换为XML,但默认情况下编码格式设置为UTF-8。我希望将其设置为UTF-16格式,但是我不知道如何设置。

  private void XmlCreation(int size,List<DataItem> item) throws ParserConfigurationException, TransformerException
 {
  DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
  DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
  Document document = documentBuilder.newDocument();
  Element rootElement = document.createElement("ArrayOfDataItem");
  document.appendChild(rootElement);
  for (DataItem in: item)
  { 
  Element subroot = document.createElement("DataItem"); 
  rootElement.appendChild(subroot);
  Element em = document.createElement(in.getKey());
  em.appendChild(document.createTextNode(in.getValue()));
  subroot.appendChild(em); 
  }

  TransformerFactory transformerFactory = TransformerFactory.newInstance();
  Transformer transformer = transformerFactory.newTransformer();
  java.io.StringWriter sw = new java.io.StringWriter();
  DOMSource source = new DOMSource(document);

  StreamResult result =  new StreamResult(System.out);
  transformer.transform(source, result);

  String xml = sw.toString();
  System.out.println(xml);
  }
}

感谢大家。
2个回答

3
我还没有测试过,但是应该可以解决问题:
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-16");

2
这篇文章可能会对您有所帮助。基本上,您需要使用setOutputProperty方法,并将OutputKeys.ENCODING作为键,所需的编码(例如"UTF-16")作为值来调用该方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接