当前位置:编程问答 > C#/ASP.NET >

.NET调用Java的WebService出现中文乱码问题

问题:情况是这样的: 我使用.NET的C#语言开发做客户端,服务端是由Java的同学编写的WebService,现在的情况是他从数据库中取到得信息可以传给我,我要调用方法或传值给他的话只能使用英文或数字,中文传递的话他那边获取的参数是乱码,于是不能获取正确的数据。希望高手能解释一下这个原因,并解决这个问题。 关于这点,我们一直是怀疑.NET和Java的数据类型及编码格式不一致的问题,但是目前还没找到切实有效的解决方案,另外,有一篇文章写的好像比较深,无法理解,希望有高手能帮梦解释一下,地址: http://www.programfan.com/club/showtxt.asp?id=290603 谢谢~!
补充:不用考虑他传递给我的数据,他传递给我的是JSON数据,其实还是一个字符串,但是里面不管是中文、英文还是字符等我这边都可以正常获取;
至于他那边是怎么处理之后给我的也不用考虑了,我自己不是很了解Java所以没有去弄明白;
关键的问题就是他写的方法中,我传递中文字符串做参数BS那边就获取的乱码,于是无法操作数据库,如果我传递的是英文字符串或数字字符串,他那边可以操作数据库并返回状态给我;
最后,关于编码格式:我们也是一直考虑使用UTF-8的,但是我改了字符串的编码格式,中文字符串还是不行,传递给他那边之后他获取的还是乱码,这个才是真正困惑我们的。希望高手能帮忙解释,并解决该问题,谢谢~!
追问:他那边一直是UTF-8编码格式,但是我这边(C#)转成UTF-8之后传递过去还是不行。
答案:它传递给你的数据是否有编码过?

使用 Server.UrlDecode(str); 解码过么?

它那边也要用url编码 
==

两边的编码肯定要用utf-8 
发送数据方要用 UrlEncode编码,如果是客户端,使用 escape函数
接受数据方使用 HttpUtility.UrlDecode解码
其他:11 设置java里的编译码为UTF-8 我也想知道这个问题。。。
当时刚接触Socket时遇到一样的情况
我的服务器端也是C#写的,也不能中文 在java 里写过滤器 在把所有页面的编码格式设为utf-8 就可以了 楼主,我最近也在搞.net调用Java的WebService,不过我的WebService是rest风格的,我想知道,你的客户端调用服务端的方法时,传递的参数是什么类型的?json字符串吗?,服务端接收客户端传递的参数又用什么类型呢? 

上一个:调试.net网站时无法显示图片
下一个:.net 实现类似51job添加工作经验功能

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,