我有一个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(");");
任何帮助?
答案 0 :(得分:0)
通常,如果二进制数据需要是xml doc的一部分,则它是base64编码的。有关详细信息,请参阅this question。我建议你base64编码可以有异国情况的UTF-8字符的字段,并在客户端对base64进行解码。
有关java中的base64编码/解码的两个不错选项,请参阅this question。