android客户端向mysql数据库插入中文乱码(解决方法)

本人在用android客户端向mysql数据库插入数据的时候发现中文会出现乱码问题,当时理所当然的认为,只要把所有涉及到编码的地方全部设置成utf-8就应该可以了。各种折腾……

我直接写出我最终的解决办法:

  1. android客户端代码要保证是用utf-8格式传递到服务器的。
    这个没什么可说的,因为每个人请求服务器的方式不一样。

  2. 服务器接收的时候(我是用java写的服务器,其它语言自行解决)

public class UpdateMemberInfo extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
//req来接收客户端传递过来的参数,这里要设置为utf-8的格式
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        //后面的是我自己的业务,不用管
        PrintWriter out = resp.getWriter();
        String username = req.getParameter("username");
        String phone = req.getParameter("phone");
        String nickname = req.getParameter("nickname");
        String address = req.getParameter("address");
        String qq = req.getParameter("qq");
        String zip_num = req.getParameter("zip_num");
        String email = req.getParameter("email");
        String birthday = req.getParameter("birthday");
        String sex = req.getParameter("sex");

        String result = UpdateMemberInfoService.getInstance().updateMemberInfo(
                phone, username, nickname, address, qq, zip_num, email,
                birthday, sex);
        out.print(result);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(req, resp);
    }

}

3 . 然后就是mysql数据库的编码格式设置了

用这个 show variables like 'character_set%' 看一下数据库编码格式

这里写图片描述

如果其中哪一项不是utf-8,就把他改成utf-8。

具体修改方法我也是网上参考别人的方法,尊重原创作者
http://blog.chinaunix.net/uid-545411-id-2385599.html

4 . 上面三个步骤之后我依然没有解决问题,后来折腾一阵子后,发现一个文章解决了我的问题,尊重原创作者:

http://www.cnblogs.com/amboyna/archive/2008/06/18/1224570.html

我是按照文章下面评论里面写的,成功了。
jdbc:mysql://localhost:3306/databaseuseUnicode=true&characterEncoding=UTF-8

即:

private String driver = "com.mysql.jdbc.Driver";
//主要是问号和问号后面的部分
private String url="jdbc:mysql://123.xx.xxx.xx:3306/yourdb
name?useUnicode=true&characterEncoding=UTF-8";
private String user = "root";
private String password = "xxxxxxxx"; 

也就是说在连接mysql数据库的时候也有一个编码问题,这里也要搞成utf-8的格式。

第一次写文章,写的不好,只当是做一个记录吧。大神么路过笑笑就好了勿喷哈。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值