AsyncHttpClient+mysql 中文乱码问题

本文记录了在使用AsyncHttpClient进行HTTP请求时遇到的中文乱码问题及其解决方法,包括服务端如何将接收到的数据转为UTF-8以及在MySQL数据库中处理中文编码的步骤,如修改数据库和表的编码格式为UTF-8。
摘要由CSDN通过智能技术生成

最近做一个小东西,客户端用到AsyncHttpClient做get请求,服务端接收处理数据,然后存储到mysql,再从mysql读取数据回传给客户端。

传输数据中需要使用中文,于是乎,各种乱码问题搞了好久,今天总算搞定,在此记录一下,备查。


AsyncHttpClient中文编码

先解决AsyncHttpClient的中文编码问题,AsyncHttpClient将客户端请求数据发送给服务端之前,内部将字符串编码转换成了ISO-8859-1,也就是latin1,于是乎,客户端好好的utf8,传到了服务端再直接传回客户端,也变成了乱码。

自己测试了n次,网上又搜了一圈,才发现是AsyncHttpClient搞的鬼。

搞清楚原因,那么解决方法就很简单了:

在服务端将接收到的数据转换成utf-8,方便后续各种处理。

示例代码如下:

String info = new String(request.getParameter("info").getBytes("ISO-8859-1"), "utf-8");


MySql中文编码

第一个坑解决了,那么来第二个坑。

数据保存到数据库的时候提示出错了,data turncated。

估摸着应该又是中文的锅了,于是又搜了一圈,发现是表内数据编码的问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值