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

首先感谢 http://blog.csdn.net/amazingrace/article/details/8794088

        说重点:

项目:

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

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


问题:

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


解决过程:

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

扫描二维码关注公众号,回复: 5771131 查看本文章

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

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

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

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

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


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





猜你喜欢

转载自blog.csdn.net/qdslp/article/details/13298037