【发布时间】:2012-01-12 16:28:29
【问题描述】:
我有一个 servlet,它应该回复 Json {obj:XML} 中的请求(意思是一个 Json 里面包含一个 xml 对象)。
XML 以 UTF-8 编码,并有几个字符,例如 => पोलैंड。
XML 在org.w3c.dom.Document 中,我正在使用 JSON.org 库来解析 JSON。当我尝试在ServletOutputStream 上打印时,字符编码不正确。我已经测试过它试图在文件中打印响应,但编码不是 UTF-8。
Parser.printTheDom(documentFromInputStream,byteArrayOutputStream);
OutputStreamWriter oS=new OutputStreamWriter(servletOutputStream, "UTF-8");
oS.write((jsonCallBack+"("));
oS.write(byteArrayOutputStream);
oS.write(");");
我什至在本地(没有部署 servlet)上尝试过上一个和下一个代码:
oS.write("पोलैंड");
结果是一样的。
当我尝试打印文档时,该文件是格式良好的 xml。
oS.write((jsonCallBack+"("));
Parser.printTheDom(documentFromInputStream,oS);
oS.write(");");
有什么帮助吗?
【问题讨论】:
-
您是否尝试过使用
HttpServletResponse.getWriter()提供的Writer,而不是手动包装原始输出流? -
您好,感谢 vm 的评论。我尝试使用作家,它似乎只是在某些情况下工作,其他字符格式不正确。你有什么额外的想法吗? @skaffman
标签: java xml servlets character-encoding org.json