首页 新闻 会员 周边

.net调用Php的Webservice,得到的数据中文乱码。(PHP哪边用的是UTF8),怎么转码呢?

0
悬赏园豆:50 [已解决问题] 解决于 2012-09-19 14:59

            byte[] bs = Encoding.Default.GetBytes(s);
            byte[] bbs = Encoding.Convert(Encoding.Default, Encoding.UTF8 , bs);
           string str= Encoding.UTF8.GetString(bbs);

以上不对吗?可转换之后,还是会有乱码的问题。求高手帮帮忙。。

< >
分享
最佳答案
0

byte[] bbs = Encoding.Convert(Encoding.Default, Encoding.UTF8 , bs);

这句中的设置成:byte[] bbs = Encoding.Convert(Encoding.Default, Encoding.Default , bs);

收获园豆:15
jason2013 | 小虾三级 |园豆:1998 | 2012-09-19 13:01

不行啊,还是中文出现乱码的情况

以人会友 | 园豆:8 (初学一级) | 2012-09-19 13:08

@以人会友: webservice返回的是 byte[] 吗?

Launcher | 园豆:45045 (高人七级) | 2012-09-19 13:11

@Launcher: 不是,返回的是个字符串,字符串中文出现乱码!

以人会友 | 园豆:8 (初学一级) | 2012-09-19 13:32

@以人会友: 这样吧,能否把服务地址给告知一下,或者你能通过fiddler或别的工具抓包,把响应的内容给贴出来。

Launcher | 园豆:45045 (高人七级) | 2012-09-19 13:39

3q,解决了。等会结贴

以人会友 | 园豆:8 (初学一级) | 2012-09-19 14:04

@以人会友: 你是怎么解决的?

何以笙箫 | 园豆:41 (初学一级) | 2014-03-03 15:39
其他回答(6)
0

不用Convert,直接 Encoding.UTF8.GetString。

收获园豆:10
Launcher | 园豆:45045 (高人七级) | 2012-09-19 13:01

不行啊,还是中文出现乱码的情况

支持(0) 反对(0) 以人会友 | 园豆:8 (初学一级) | 2012-09-19 13:08
0

byte[] bs = Encoding.UTF8.GetBytes(s);
string str= Encoding.Unicode.GetString(bs);

这个形式试试

收获园豆:10
2012 | 园豆:21230 (高人七级) | 2012-09-19 13:17

不行

支持(0) 反对(0) 以人会友 | 园豆:8 (初学一级) | 2012-09-19 13:35
0

建议确认一下PHP那边返回的数据是不是UTF-8编码

收获园豆:10
dudu | 园豆:31003 (高人七级) | 2012-09-19 13:29
0

没有跨平台调用过,如果要解决问题,最好提供接口地址,直接调试,如果不方便就没办法了。

收获园豆:5
秦楼东 | 园豆:913 (小虾三级) | 2012-09-19 13:52
0

byte[] bs = Encoding.Default.GetBytes(s);

//这里的 s是啥, 如果早已乱码,转换也没有用。

把你的 完整接收方法 贴出来。

Qlin | 园豆:2403 (老鸟四级) | 2012-09-19 14:06
0

PHP人员给我说的死UTF8,到最后我一看是GBK的,我去

以人会友 | 园豆:8 (初学一级) | 2012-09-19 14:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册