MySQL的乱码问题
在项目的开发过程中,数据库的编码通常是ISO-8859-1,即latin1,而项目编码往往是UTF-8、GBK、GB2312,此时如果不在显示过程中,或者插入数据过程中,总之操作数据库的过程中进行转码操作,页面上的中文和数据库里的中文,通常会出现乱码现象。下面就jdbc连接mysql举一个具体例子:
<%@ page contentType="text/html;charset=gbk"%><%@ page import = "java.sql.*"%><html><title>JDBC测试mysql数据库</title><html><body background="imag/table_back.jpg"><%Connection conn = null ; //数据库连接Statement sm = null ; //数据库操作ResultSet rs = null ; //查询结果集 try{Class.forName("org.gjt.mm.mysql.Driver").newInstance();String url ="jdbc:mysql://localhost/judgeonline?user=root&password=123&useUnicode=true&characterEncoding=UTF-8";conn = DriverManager.getConnection(url) ;sm=conn.createStatement();String str = new String("待显示的中文".getBytes("gb2312"),"iso-8859-1");String sql = "insert into users(user_id,nick) values('pppj040857','"+str+"')";int flag = sm.executeUpdate(sql);if(flag == 1){%>插入成功!<%}else{%>插入失败!<%}}catch(Exception e){e.printStackTrace(); } finally{try{conn.close();//连接一关闭,所有操作都将关闭}catch(Exception e){}}%></body></html>
页:
[1]