针对mysql的中文乱码问题解决

连接Mysql时会出现中文乱码或者无法输入中文,其实出现这个乱码问题的主要在3个地方:

 
1.mysql 连接客户端  2.mysqld 服务端   3.mysql的db数据库本身的编码问题
 
针对这乱码问题有三种解决办法:
 
方法一、在配置文件,找到my.cnf的位置
 
  1. 在[client]字段里加入default-character-set=utf8,如下: 
  2.  
  3. [client] 
  4. default-character-set=utf8 
  5. 同进也修改下面的; 
  6.  
  7. [mysqld] 
  8. character-set-server=utf8 
  9. collation-server=utf8_general_ci 
前面两个地方修改完后service mysql restart重启mysql服务
 
方法二,修改全局字符编码属性
登陆mysql数据库后执行:
 
 
  1. set names utf8; 
它相当于下面的三句指令:
 
  1. SET character_set_client = utf8; 
  2. SET character_set_results = utf8; 
  3. SET character_set_connection = utf8; 
方法三 :指定数据库的字符编码和数据库表的字符编码
 
例如:
1、创建数据库的时候:
 
 
  1. CREATE DATABASE `user_58jb` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
2、建表的时候
 
  1.  CREATE TABLE `web_58jb` ( 
  2. `id` varchar(40) NOT NULL default ''
  3. `userid` varchar(40) NOT NULL default ''
  4. ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
设置数据库mydb默认编码为utf8:
 
那么如果数据库或表已经建成了呢,也可以通过alter修改;
修改数据库:
 
  1. mysql>alter database my_db  character set utf8; 
 
修改my_table默认编码为utf8:
 
  1. mysql>ALTER TABLE `my_table` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 
 
备注:
最好在创建数据库和表的时候就设置好字符编码,这样的话就可以彻底避免字符编码乱码问题了。