您的位置:首页 > 移动开发 > Android开发

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

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

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

android客户端代码要保证是用utf-8格式传递到服务器的。

这个没什么可说的,因为每个人请求服务器的方式不一样。

服务器接收的时候(我是用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 . 上面三个步骤之后我依然没有解决问题,后来折腾一阵子后,发现一个文章解决了我的问题,尊重原创作者:

/article/4746092.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的格式。

第一次写文章,写的不好,只当是做一个记录吧。大神么路过笑笑就好了勿喷哈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: