mysql出现字符乱码的问题主要是字符编码的不一致,或者是用来默认的字符集(Latin1),它是不支持中文的,所以显示为乱码,这时候需要我们手动的修改msyql的默认的字符编码。还一种特殊情况就是你页面传过来的数据本身就是乱码,这种情况一般可以通过代码调试很容易找出来。
1、查看当前mysql数据库的编码
mysql -uroot -proot
mysql> show variables like 'collation_%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.02 sec)
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.02 sec)
mysql>
2、修改my.cnf
在linux下面可以通过下面的命令
vi /etc/my.cnf 开个my.cnf
在windows下面找到mysql的安装路径
默认的安装的路径 C:\Program Files (x86)\MySQL\MySQL Server 5.1\
用记事本打开
在[client]下添加
default-character-set=utf8
在[mysqld]下添加
default-character-set=utf8
这样你每次建立数据库的时候就可以不知道字符编码了,它自动用我们设置的默认 字符编码。
3、在命令行修改mysql的字符集编码
mysql> set character_set_client=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_connection=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_database=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_results=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_server=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_system=utf8;
Query OK, 0 rows affected (0.01 sec)
4、注意要重新启动mysql服务
linux下面
/etc/rc.d/init.d/mysql restart
Windows下面
在点击开始 在搜索框里面输入
services.msc 打开windows的服务管理界面,重新启动mysql服务。