本人系统是CENTOS 7.3 ,在调试数据库时发现乱码,如下图
在数据库中查询和网页显示的结果一样。
这是字符集的问题,没有统一。
解决办法:
查看数据库字符集
MariaDB [(none)]> show variables like "%character%";
发现有两项需要修改
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary | ---------->此项保留不动
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
直接修改配置文件
# vi /etc/my.cnf
[mysqld]
character-set-server=utf8
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
重启服务
# systemctl restart mariadb
进数据库
MariaDB [(none)]> 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 | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
已经修改过来了。
但是已经创建的表和数据库还是用原来的字符集,由于这数据库还没有重要内容(如果数据库有重要内容,请百度如何修改现在的库和表),所以我删除了库和表,新建库和表就是新字符集,随便导两行数据进去,发现可以了,
但是打开网页的时候,还是不行,经过百度一番才明白,是网页文件没有指定字符集,于是加了一行指定字符
所加这行的位置需要注意,在连接数据库后,操作数据库之前!
结果 还是不行
后来修改为GBK才可以
这次终于成功了,看图
编辑回复