java向mysql插入数据乱码问题的解决方法

  

遇到java向mysql插入数据乱码问题,如何解决?

  

<强> MySQL默认编码是latin1

中的一个         mysql>显示变量如“字符%”;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | | Variable_name |值   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | character_set_client | latin1 |中的一个   | character_set_connection | latin1 |中的一个   | character_set_database | latin1 |中的一个   | character_set_filesystem二进制| |   | character_set_results | latin1 |中的一个   | character_set_server | latin1 |中的一个   | character_set_system | utf8 |   | character_sets_dir | D: \ MySQL \ \数据集\ |分享   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   之前      

创建数据表并插入数据,
  

        mysql>使用测试;   mysql>创建表的信息(   →int id(4)无符号auto_increment主键,   →消息varchar (50) not null   →)引擎=默认的myisam charset=utf8;   mysql>插入消息(消息)值(“测试MySQL中文显示”);   mysql>select * from消息;   + - - - - - - - - - - - - - - - - - - - - - - - - +   | | |消息id   + - - - - - - - - - - - - - - - - - - - - - - - - +   | 1 |测试MySQL中文显示|   + - - - - - - - - - - - - - - - - - - - - - - - - +   之前      

编写程序(Java),

        进口java.sql.Connection;   进口java.sql.DriverManager;   进口java.sql.ResultSet;   进口java.sql.Statement;      公开课JDBCTest {   公共静态void main (String [] args) {   字符串司机=癱om.mysql.jdbc.Driver”;   字符串url=" jdbc: mysql://localhost: 3306/测试”;   字符串的用户=案?   字符串密码=案?      尝试{   forname(司机);   康涅狄格州=DriverManager连接。getConnection (url、用户密码);=声明支撑conn.createStatement ();   支撑。executeUpdate(“插入消息(消息)值(“测试MySQL编码”)”);   ResultSet rs=支撑。executeQuery (“select * from消息”);   而(rs.next ()) {   int id=rs.getInt (" id ");   字符串消息=rs.getString(“信息”);   system . out。println(消息id + " " +);   }      rs.close ();   stmt.close ();   conn.close ();   }捕捉(异常e) {   e.printStackTrace ();   }   }   }   之前      

程序输出,
  

  

  

我们看的到,尽管使用数据库时我们能够正常的添加和显示中文,但是在使用程序连接数据库时并不能够正常显示中文,为此我们需要修改MySQL的默认编码,编辑我。ini (MySQL配置文件)文件对编码进行修改
  

  

设置MySQL的默认字符集为utf8,找到客户端配置[客户]在下面添加。
  

  

找到服务器配置(mysqld)在下面添加
  
  

  

设定MySQL数据库以utf8编码运行,连接MySQL数据库时使用utf8编码
  停止和重新启动MySQL
  

  

重新连接数据库,查看编码,数据表内容

        mysql>显示变量如“字符%”;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | | Variable_name |值   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | character_set_client | utf8 |   | character_set_connection | utf8 |   | character_set_database | utf8 |   | character_set_filesystem二进制| |   | character_set_results | utf8 |   | character_set_server | utf8 |   | character_set_system | utf8 |   | character_sets_dir | D: \ MySQL \ \数据集\ |分享   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   mysql>使用测试;   mysql>select * from消息;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | | |消息id   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | 1 |虏芒脢脭MySQL脰脨脦脛脧脭脢戮|   | 2 | & # 63;& # 63;mysql # 63; & # 63;|   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +      

这里显示依然是乱码主要是因为之前使用的编码不同造成的,重新运行之前写的程序:java JDBCTest 

java向mysql插入数据乱码问题的解决方法