Android客户端页面提交数据到tomcat的servlet插入mysql中的信息表遇到的中文乱码问题

来源:互联网 发布:mac qq 远程协助 编辑:程序博客网 时间:2024/05/18 00:27

这几天在Android端写一个注册页面,需要将注册页面edittext控件中填写的注册信息提交到servlet中,从servlet获取到信息后,将信息插入到mysql相应的表格。插入的数据难免遇到中文,对此出现的中文乱码问题先作以总结。

首先,Android端页面如果提交的是中文数据,在提交前需要对提交的中文数据作编码设置,Android端默认的编码方式是utf-8,所以需要做的操作是:

String path = "http://192.168.1.101:8080/Web/registerServlet"+"?username=" + URLEncoder.encode(username, "utf-8");
其次保证编写servlet的IDE,不管是eclpse还是myeclise的本地编码方式是utf-8,具体的设置位置你应该可以找到,下图是我使用的myeclipse的设置地方:

接着,在servlet页面需要做的操作是:因为tomcat默认的编码方式是iso-8859-1,所以在servlet的doget()方法中获取到Android客户端提交的中文数据往mysql数据库的表格中插入之前也需要进行转码设置,具体见下面。

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

然后下面就是JDBC操作数据库的操作,在访问数据库获取连接的url时在后面加上"?useUnicode=true&characterEncoding=utf-8",如下面这句:

Connection conn = DriverManager.getConnection(url+"?useUnicode=true&characterEncoding=utf-8", user, password);

最后保证在当时安装mysql时选择的编码方式时utf-8。  可以通过SHOW VARIABLES LIKE 'character_set_%';这句指令查看mysql各个位置的编码方式,设置好的mysql编码应该如下图所示:

    
这样,整个过程中都保证了编码方式是utf-8,中文乱码的问题也就解决了。希望可以帮到你。



阅读全文
0 0
原创粉丝点击