解决mysql乱码问题

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服务。

猜你喜欢

转载自chen106106.iteye.com/blog/1639179