問題は次のとおりです。 DocumentBuilderFactoryによって作成されたxmlファイルがあります。 それから、このファイルをブラウザでダウンロードする必要があります。JSFで右xmlエンコーディングをダウンロード
コードは以下の通りです:
StringWriter sw = new StringWriter();
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.transform(new DOMSource(doc), new StreamResult(sw));
String xml = sw.toString();//returns the whole XML but in String format.
HttpServletResponse response = (HttpServletResponse)
FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.setContentType("text/xml");
response.setHeader("Content-Disposition", "attachment;filename=export.xml");
ServletOutputStream out = response.getOutputStream();
out.write(xml.getBytes());
out.flush();
それがエクスポートされると、私は非ラテンシンボルに問題があります。一例として、キリル語は\ xED \ xEE \ xE2 \ symbolsとしてエクスポートされます。これを修正するには? ファイルの他の部分が正しくエクスポートされます。
HttpServletResponseの文字エンコードがUTF-8に設定されていますか? – axemoi