我有一个脚本输出一些包含UTF-8字符的XML。 它适用于拉丁语言(éàœ,...)但输入阿拉伯字符时失败:输出被截断为第一个阿拉伯字符(ضصيضص)。
我的代码看起来像这样:
public void doGet(HttpServletRequest req, HttpServletResponse res) {
//...
res.setCharacterEncoding("UTF-8");
res.setContentType("text/xml; charset=utf-8");
String xml = getXMLString();
LOG.debug(xml); // Output is correct here
op.print(xml);
op.flush();
op.close();
}
此外,当我将其显示为HTML
时,它显示正确答案 0 :(得分:4)
使用可以向客户端发送字符串的HttpServletOutputStream
PrintWriter
getWriter,而不是ServletResponse
(对于二进制数据)。
res.setCharacterEncoding("UTF-8");
res.setContentType("text/xml; charset=utf-8");
PrintWriter writer = res.getWriter();
//now write your text