今天一个web服务通过HTTP的方式向其它web服务请求xml数据时,返回的结果中是带有中文的,以致xml中的一个尖括号“<” 变成了乱码。
这样导致无法解析该xml结果,导致出错。见下图的cname 字节点。
0 http://xxx.jsp 有限公�?/cname> BB
为紧急修改BUG,
方法一:
把xml数据通过java.net.URLEncoder.encode(param)方法编码后再返回给请求方,
请求方再用java.net.URLDecoder.decode(param)进行一次解码。问题得于解决。
方法二:
把xml数据通过 java.net.URLEncoder.encode(param) 方法编码后再返回给请求方,js使用decodeURI(param)方法解码。
方法三:
输出结果之前,加上这一句:
response.setContentType("text/xml;charset=gbk");
text/xml根据自已输出的格式进行替换。
不知还有没有其它更好的方法,以后再补充。