问题描述
建表的时候使用的编码为utf8,前端传入中文的时候,数据库里的显示为???
与开发人员确认前后端编码一致,那问题出在何处?
问题解决
使用 show variables like ‘char%’;
查看各类编码格式,如下所示:
这是改完后的结果,修改之前是latin1
其中
client 为客户端使用的字符集
connection 为链接数据库的字符集设置类型,如果程序没有指明连接数据库使用的字符集类型则按照服务器端默认的字符集设置
database 为数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置
results 为数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集
server 为服务器安装时指定的默认字符集设定
system 为数据库系统使用的字符集设定
修改 /etc/mysql/my.cnf文件
添加以下配置:
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
最后重启mysql
1 | service mysqld start |
搞定!
数据库里???的中文能正常显示!