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的人遇到的一个悲剧!
说重点:
项目:
服务器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的人遇到的一个悲剧!
相关文章推荐
- HttpPost发送JSON数据中文乱码问题。
- 关于Android使用HttpURLConnection传输含有中文JSON数据的报错、乱码问题
- java处理http发送的数据转化为json格式并返回遇到的问题
- java实现HTTP的post请求 json格式中文乱码问题
- HTTPClient POST发送JSON数据 中文无乱码
- springMVC_json格式数据的接收和发送(未解决中文乱码问题)
- java实现HTTP的post请求 json格式中文乱码问题
- Http Post请求提交json格式数据工具类,解决请求参数中文乱码问题
- springMVC_json格式数据的接收和发送(未解决中文乱码问题)
- JSON数据的中文乱码问题
- JSON数据的中文乱码问题
- 解决SpringMvc后台接收json数据中文乱码问题
- SSM框架 Json前后端数据传输中文乱码问题解决
- C#中关于搜狗地图web服务api的httpresponse中回应json中文乱码的问题 Encoding
- Java发送mail功能,解决中文乱码问题
- iOS 中json解析数据出现中文乱码的问题
- java ajax发送数据到后台,中文乱码
- spring mvc 发送http post请求返回的中文数据乱码
- Java:jdbc连接数据库插入中文数据乱码问题
- 服务器回传的json数据中文乱码问题