java socket utf-8_Java和C++通过Socket通信中文乱码的解决

本文讲述了在Java服务器与VC++客户端通过Socket进行通信时遇到的中文乱码问题。作者分析了数据库编码、数据库访问、编码转换和Socket发送过程中的问题,并给出了详细的解决步骤,包括在Java端将Socket发送编码改为gb2312,从而成功解决了乱码问题。
摘要由CSDN通过智能技术生成

理想的开发状态是我开始就是C开发,一直是C的开发,现在还是C的开发,若干年后,幸运的话,我可以成为C语言的高手或者专家……

更实际的情况是我开始是C开发,后来变成了JAVA开发,然后又做起了VC++的开发,几年下来,发现自己几乎一无所长,成为了编程界的万金油,这种产物很重要,但是也比较尴尬。

前一段时间我用C开发了一个服务器程序,前端是VC开发的客户端。

现在我用JAVA开发了一个类似的服务器程序,前端依然是VC开发的客户端,运行时发现,中文乱码了。

先说说我的问题场景,很常见:

1 VC++客户端请求Java服务器,Java服务器从mysql数据库里读取中文字符串,然后通过Socket发送给客户端。

我以前也遇到编码的问题,用GBK,GB2312,UTF-8一顿乱转,竟然解决了。这次我如法炮制,各种转,都失败了。

再次感谢互联网,在网上查了不少的资料,看到了不少的说法,尝试了好多都没有成功。

即便如此,还是有不少的启发,沉下来自己去分析自己的代码,最终幸运的解决了,现在梳理一下自己的思路,希望也许某一天能帮到正在抓耳挠腮的你。

①数据库编码

我的mysql数据库的编码是默认的latin1,打开数据库,发现存储的中文字符串是乱码。这说明我存的不是latin1编码,那是什么呢?

②数据库插入

数据库中的数据是通过WEB软件插入的&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值