最近在使用php操作数据库时偶然发现配置的数据库竟然不能向表中插入中文字符,一般来说配置的环境都是支持中文的,不知道又动了什么不改动的东西。只能尝试着一边查资料一边修复了。

1. 查看字符编码

首先打开phpMyAdmin,分别查看数据库和数据表的编码排序规则,发现果然有问题,输入中文应该是utf8编码,但有几项却显示 gbk 和latin1,由于我已经调试好了,这里就不上图了。
也可以直接输入SQL命令查看字符编码:

show variables like'%char%'

2. 修改配置

为了方便以后我们创建的数据库和数据表字符编码没有问题,我们需要来修改配置文件,首先找到mysql的配置文件 my.ini ,然后在 my.ini 文件的 [client]和[mysqld]标签下面分别添加 default-character-set = utf8。这样就修改好了默认的字符编码。

接下来我们还要修改当前已经创建好的数据库以及数据表的编码,因为上一步只是修改了mysql默认编码,并不会影响有的数据库和表

我们可以直接在phpmyadmin中操作:

  1. 打开phpmyadmin,点击相应的数据库,然后点击右上方栏的 操作,翻到最下面的 排序规则,选择 utf8_general_ci ,然后保存,这样数据库编码就修改好了。
    sql.png
  2. 然后还需要修改相应的表的编码,与上面步骤类似。点击相应的表 ,然后点击 结构 ,然后选择需要修改编码的字段,点击下面的修改,进去修改规则就好了。
    QQ截图20190501150519.png

最后再进行步骤一检查一下编码,是不是OK啦!!!