java SOAP中文乱码!!!!

duqiangcise 2010-01-28 09:44:52
我创建soap信息的方式如下:
SOAPMessage soapMessage = messageFactory.createMessage();
SOAPPart soapPart = soapMessage.getSOAPPart();
SOAPEnvelope requestEnvelope = soapPart.getEnvelope();
SOAPBody body = requestEnvelope.getBody();
SOAPBodyElement tt = body.addBodyElement(requestEnvelope.createName("MTReq"));
SOAPElement subject = tt.addChildElement("Subject");
subject.addTextNode("中文人");

然后我把该soap消息输出到控制台(输出的方式是:soapMessage.writeTo(System.out);),得到的结果是:
------=_Part_0_25292190.1264686044609
Content-Type: text/xml; charset=UTF-8
Content-Transfer-Encoding: binary
Content-Id: <5A40EDD971F1137EA00571F53DC56662>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body>
<MTReq>
<Subject>中文人</Subject>
</MTReq>
</soapenv:Body>
</soapenv:Envelope>
为什么“中国人”的汉字变成了红色部分的乱码呀??
请问大家有什么办法解决这样的乱码吗?????
有什么样的办法改变上面mime头(Content-Type: text/xml; charset=UTF-8)的编码方式为“GB2312”吗??
...全文
758 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
JavaAlpha 2010-02-05
  • 打赏
  • 举报
回复
楼主 可以加个过滤器
tianfang 2010-02-05
  • 打赏
  • 举报
回复
不是乱码,是UTF8的字符串表现方式,wml中的用的很多

看看别人的转码方法吧
http://tidus2005.javaeye.com/blog/179166
angry_pig 2010-01-29
  • 打赏
  • 举报
回复
setRootPart(sResult,"text/xml;charset=GB2312")
maxinliangGenius 2010-01-29
  • 打赏
  • 举报
回复
给你推荐个工具:SOAPUI ,我以前也碰到过这种情况,当时是http头的长度和XML的长度不区配,你自己用soapui看看吧。
发帖
Java

4.9w+

社区成员

Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
帖子事件
创建了帖子
2010-01-28 09:44
社区公告
暂无公告