我用的数据库是Mysql5.0,所以,我先用google,baidu等上网搜了一下解决方案,自己也按着方法反复测试了一、两天之后,终于解决了我的JSP+Mysql5.0+tomcat-5.0.29出现的乱码问题。
解决方案如下:
1、在dos环境下,用mysql --default-character-set=gbk -u root -p 这句话进入mysql~~
2、建数据库、表,如下:
create database admin; use admin; CREATE TABLE admin ( admin_name char(20) NOT NULL, admin_password char(20) NOT NULL ) TYPE=MyISAM, default character set gbk; |
3、接着用如下testgbk.jsp测试,
<%@ page contentType="text/html; charset=gbk" language="java" import="java.sql.*" import="java.io.*" %> <% Connection conn = null; Class.forName("com.mysql.jdbc.Driver"); conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/admin?user=root&password=123456&useUnicode=true&characterEncoding=gbk"); Statement stmt=conn.createStatement(); ResultSet rs=null; %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk"> <title></title> </head> <body> <table width="314" height="34" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#6666FF"> <tr> <td align="center" height="19" width="100" style="font-size:10pt;color:red;">帐号</td> <td align="center" height="19" width="40" style="font-size:10pt;color:red;">密码</td> </tr> <% String temp = "insert into admin(admin_name,admin_password) values('你们好','123')"; PreparedStatement pst = conn.prepareStatement(temp); pst.executeUpdate(); pst.close(); //结束 temp = "select * from admin"; rs=stmt.executeQuery(temp); while(rs.next()){ String admin=rs.getString("admin_name"); String pass=rs.getString("admin_password"); %> <tr> <td align="center" height="19" width="100" style="font-size:10pt;color:blue;"><%=admin%></td> <td align="center" height="19" width="40" style="font-size:10pt;color:blue;"><%=pass%></td> </tr> <% } %> <% rs.close(); stmt.close(); conn.close(); %> <tr> <td height="19" colspan="4" align="center" style="font-size:10pt;color:red;"> </td> </tr> </table> </body> </html> |
好了,现在让你头疼的mysql中文乱码问题是不是已经迎刃而解了呢?~~呵呵,搞定!
<script type="text/javascript"><!--google_ad_client = 'pub-4196225375348397';google_ad_width = 728;google_ad_height = 90;google_ad_format = '728x90_as';google_ad_channel ='7447308247';google_color_border = '336699';google_color_bg = 'FFFFFF';google_color_link = '0000FF';google_color_url = '008000';google_color_text = '000000';//--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>