android客户端向mysql数据库插入中文乱码(解决方法)
2015-06-02 16:56
543 查看
本人在用android客户端向mysql数据库插入数据的时候发现中文会出现乱码问题,当时理所当然的认为,只要把所有涉及到编码的地方全部设置成utf-8就应该可以了。各种折腾……
我直接写出我最终的解决办法:
android客户端代码要保证是用utf-8格式传递到服务器的。
这个没什么可说的,因为每个人请求服务器的方式不一样。
服务器接收的时候(我是用java写的服务器,其它语言自行解决)
3 . 然后就是mysql数据库的编码格式设置了
如果其中哪一项不是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
即:
也就是说在连接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的格式。
第一次写文章,写的不好,只当是做一个记录吧。大神么路过笑笑就好了勿喷哈。
相关文章推荐
- Android FTP操作
- Android 轻松实现仿QQ空间下拉刷新
- android程序安全的建议
- 关于Android的Activity的onCreate多次调用的问题
- Android设计模式(一)--完美单例模式
- ArcGIS For Android 定位模块的使用介绍
- Android 小米盒子游戏手柄按键捕获 - 能获取到的 home 键依然是个痛
- Android多线程断点续传下载
- AndroidManifest.xml——文件详解(一)
- #Android 自定义字体样式
- Android进步之路六:android限制横竖屏切换的方法
- Android APK反编译就这么简单 详解(附图)
- Android项目实战-云词典
- android数据保存
- Android 获取外置SD卡
- Android studio 安装中遇到一些问题的解决办法
- Android 限制EditText只能输入数字、限制输入类型、限制输入长度的小技巧
- android中一些简单的布局
- 去除Android系统应用的通知功能
- 【Rayeager PX2分享】最简单helloworld驱动编写