您的位置:首页 > 理论基础 > 计算机网络

java http 给 c++发送json数据中文乱码问题

2013-10-28 19:00 1071 查看
首先感谢 http://blog.csdn.net/amazingrace/article/details/8794088
说重点:

项目:

服务器c++,使用多语言字符集,默认GBK,直接用socket处理网络连接,自行解析http消息(消息真的很少,工作量不大),

客户端java,使用http,消息格式用json。

问题:

客户端上传数据给服务器,消息中有中文,服务器接收数据,并记录下来,然而,每次服务器收到的数据,都是“????”一堆问号。

解决过程:

说起来简单,可实际解决起来,却花了不少时间,因为做客户端的程序不熟悉c++,做服务器的程序不熟悉java,好吧,很无奈!!

1、上网查,大多说是编码问题,说java转码就好了name=new String(name.getBytes("ISO-8859-1"),"GBK");实际测试,服务器接收到的还是乱码。

2、服务器进行解码,java默认使用unicode,所以在服务器使用unicode解码,结果还是乱码。然后客户端再使用UTF8,服务器使用UTF8解码,还是乱码。

3、各种编码格式测试,结果还是没办法接收到正确的内容。

4、服务器把接收到的数据用十六进制格式按字节输出,发现输出的结果也不正常,不是想要的数据,因为时间较紧张,所以没有再仔细分析了。

5、最后找到上面那个博客,发现还需要单独对json数据进行编码!!!修改后测试结果正常!服务器接收到的数据直接输出到一个文件就可以了。

这就是一个不懂java的人遇到的一个悲剧!



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: