编程最忌讳的就是编码不统一的问题。下面我来为大家介绍几个处理mysql中文编码的问题的解决方案,虽说可能不是那么权威,应该也不会出错。如果哪里有错误,欢迎大家指教!
字符编码问题解决方案:
一,首先进行查看一下数据库的字符编码:
打开mysql控制台,输入命令show variables like 'character%';
显示如下:
+--------------------------+-------------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | E:\mysql-5.7.15-winx64\share\charsets\ |
+--------------------------+-------------------------------------------+
二,然后修改配置文件
my.ini文件
[mysql]
default-character-set=utf8
[mysqld]
basedir =E:\mysql-5.7.16-winx64\bin
datadir =E:\mysql-5.7.16-winx64\data
port = 3306
character-set-server=utf8
重启后使用第一步的命令查看,命令如下:
mysql> show variables like 'character%';
+--------------------------+----------------------------------------+
| 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 | E:\mysql-5.7.15-winx64\share\charsets\ |
+--------------------------+----------------------------------------+
8 rows in set, 1 warning (0.03 sec)
像上面一样,字符编码问题就已经统一了,然后就可以进行操作了。如果有web开发的话,编码要统一!
有时候我们还会发现有时候问题并没有解决,但是显示编码确实是正确的。为什么呢?因为这个字符编码改了以后只能对以后生效,不会对曾经生效。也就是说之前创建的数据库,表中的编码还是没有得到改变,还是原来的编码。重新创建是没有问题了,如果数据量比较大的,不行改的话,我们可以用下面的方法进行修改数据库的编码,表的编码。如下:
修改数据库编码的命令:
alter database mydb character set utf8;
修改数据库中表的编码:
alter table tablename character set utf8;
小编温馨提示:这个修改数据库和表的操作是一种治标不治本的操作,只对你修改的数据库,表生效,设置数据默认编码,你必须进行上面的操作。修改配置文件,重重启mysql服务,重启mysql,使用命令查看,如果有错误,欢迎您的指正。谢谢!