今天一个web服务通过HTTP的方式向其它web服务请求xml数据时,返回的结果中是带有中文的,以致xml中的一个尖括号“<” 变成了乱码。
这样导致无法解析该xml结果,导致出错。见下图的cname 字节点。
<?xml version='1.0' encoding='UTF-8'?>
<domain>
<result>0</result>
<url>http://xxx.jsp</url>
<cname>有限公�?/cname>
<ename>BB</ename>
<bnet_product_spec_id>
</bnet_product_spec_id>
<info></info>
</domain>
为紧急修改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根据自已输出的格式进行替换。
不知还有没有其它更好的方法,以后再补充。