一、创建XML文档,返回 String时
问题:如果调用String xmlString = document.asXML();若打印到后台日志或控制台,看到时中文乱码
解决:通过网上搜寻,牛人写的一个函数可以解决此问题,代码如下:
//code
public static String formatXML(Document document, String charset) {
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding(charset);
StringWriter sw = new StringWriter();
XMLWriter xw = new XMLWriter(sw, format);
try {
xw.write(document);
xw.flush();
xw.close();
} catch (IOException e) {
logger.info("格式化XML文档发生异常,请检查!", e);
}
return sw.toString();
}
调用: String xmlString = formatXML(document,"utf-8");
二、将String 类型的XML在Servlet 中输出到页面
问题:直接调用PrintWriter out = response.getWriter(); 返回页面显示中文乱码
解决:response中设置setContentType及setCharacterEncoding,代码如下:
//code
response.setContentType("text/xml; charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
问题:如果调用String xmlString = document.asXML();若打印到后台日志或控制台,看到时中文乱码
解决:通过网上搜寻,牛人写的一个函数可以解决此问题,代码如下:
//code
public static String formatXML(Document document, String charset) {
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding(charset);
StringWriter sw = new StringWriter();
XMLWriter xw = new XMLWriter(sw, format);
try {
xw.write(document);
xw.flush();
xw.close();
} catch (IOException e) {
logger.info("格式化XML文档发生异常,请检查!", e);
}
return sw.toString();
}
调用: String xmlString = formatXML(document,"utf-8");
二、将String 类型的XML在Servlet 中输出到页面
问题:直接调用PrintWriter out = response.getWriter(); 返回页面显示中文乱码
解决:response中设置setContentType及setCharacterEncoding,代码如下:
//code
response.setContentType("text/xml; charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();