Java servlet json对象包含XML,编码问题

时间:2012-01-12 16:28:30

标签: java xml servlets character-encoding org.json

我有一个servlet应该回复Json {obj:XML}中的请求(意思是一个包含xml对象的Json)。

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(");");

任何帮助?

1 个答案:

答案 0 :(得分:0)

通常,如果二进制数据需要是xml doc的一部分,则它是base64编码的。有关详细信息,请参阅this question。我建议你base64编码可以有异国情况的UTF-8字符的字段,并在客户端对base64进行解码。

有关java中的base64编码/解码的两个不错选项,请参阅this question