首发于高正杰的博客
写在前面
utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。 采用utf8mb4编码的好处是:存储与获取数据的时候,不用再考虑表情字符的编码与解码问题.。然后我在网上查了很多资料,全部都是让修改数据库的编码,将 utf8
改为 'utf8mb4' ,但是我修改了之后仍然一直报错,最后才发现还需要再修改 Typecho 的配置文件,接下来将详细过程记录如下。
环境
Ubuntu 16.04 ,MySQL 5.7.23
修改 MySQL 数据库的编码格式
方法一:图形化界面
通过图形化界面远程连接,将数据库和对应表的编码格式都改为utf8mb4格式。关于如何远程连接可以参考我上一篇博文。
方法二:命令行
- 修改 MySQL 配置文件
配置文件的路径/etc/mysql/mysql.conf.d
,找到后在里面添加如下内容
[mysqld_safe]
default-character-set = utf8mb4
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
- 重启数据库
service mysql restart
(CentOS 中是service mysqld restart
) - 连接数据库的命令如下,回车后再输入密码。
mysql -uroot -p
- 查看 MySQL 编码格式,命令如下:
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
修改 Typecho 配置文件
将 Typecho 配置文件 config.inc.php
中的 'charset' => 'utf8',
修改为 'charset' => 'utf8mb4'
,OK,就这样就可以存储 emoji 表情了,哈哈!😀😁😂🤣😃😄😅😆😉😊😋😎😍😘😗😙😚🙂🤗😇