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);
  }
}

みんなありがとう

4

2 に答える 2

3

私はテストしていませんが、それでうまくいくはずです:

transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-16");
于 2012-05-14T12:21:28.027 に答える
2

この記事はあなたを助けるかもしれません。基本的に、キーとして呼び出しsetOutputPropertyOutputKeys.ENCODING値として目的のエンコーディング( "UTF-16")を呼び出します。

于 2012-05-14T12:21:10.147 に答える