Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为Xml设置UTF-16编码格式?_Java_Xml_Xml Serialization_Xsd - Fatal编程技术网

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

Java 如何为Xml设置UTF-16编码格式?,java,xml,xml-serialization,xsd,Java,Xml,Xml Serialization,Xsd,我需要创建xml作为字符串传递给服务器。我已经成功地将数据转换为xml,但编码格式默认设置为utf-8。我需要的是我想把它设置为utf-16格式。但我不知道该怎么设置 private void XmlCreation(int size,List<DataItem> item) throws ParserConfigurationException, TransformerException { DocumentBuilderFactory documentBuilderFa

我需要创建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);
  }
}
private void XmlCreation(int size,列表项)抛出ParserConfigurationException、TransformerException
{
DocumentBuilderFactory DocumentBuilderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder DocumentBuilder=documentBuilderFactory.newDocumentBuilder();
Document Document=documentBuilder.newDocument();
Element rootElement=document.createElement(“ArrayOfDataItem”);
document.appendChild(rootElement);
for(数据项位于:项中)
{ 
Element subroot=document.createElement(“数据项”);
根元素appendChild(subroot);
Element em=document.createElement(在.getKey()中);
em.appendChild(document.createTextNode(in.getValue());
子轨迹追加子轨迹(em);
}
TransformerFactory TransformerFactory=TransformerFactory.newInstance();
Transformer Transformer=transformerFactory.newTransformer();
java.io.StringWriter sw=new java.io.StringWriter();
DOMSource=新的DOMSource(文档);
StreamResult结果=新的StreamResult(System.out);
变换(源、结果);
字符串xml=sw.toString();
System.out.println(xml);
}
}

谢谢大家

这篇文章可能会对你们有所帮助。基本上,您可以使用
OutputKeys.ENCODING
作为键调用
setOutputProperty
,将所需的编码(“UTF-16”)作为值。

我还没有测试过,但这应该可以做到:

transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-16");

谢谢你的回答。谢谢你的回答。。有帮助