如何让Typecho支持emoji的存储

写在前面

utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。采用utf8mb4编码的好处是:存储与获取数据的时候,不用再考虑表情字符的编码与解码问题.。然后我在网上查了很多资料,全部都是让修改数据库的编码,将 utf8 改为 ‘utf8mb4’ ,但是我修改了之后仍然一直报错,最后才发现还需要再修改 Typecho 的配置文件,接下来将详细过程记录如下。

环境

Ubuntu 16.04 ,MySQL 5.7.23

修改 MySQL 数据库的编码格式

方法一:图形化界面

通过图形化界面远程连接,将数据库和对应表的编码格式都改为utf8mb4格式。关于如何远程连接可以参考我上一篇博文。

方法二:命令行

  • 修改 MySQL 配置文件
    配置文件的路径 /etc/mysql/mysql.conf.d/mysqld.cnf,找到后在里面添加如下内容
[mysqld_safe]
default-character-set = utf8mb4
[client] 
default-character-set = utf8mb4 
[mysql] 
default-character-set = utf8mb4 
[mysqld] 
character-set-server = utf8mb4 

如何让Typecho支持emoji的存储_第1张图片

  • 重启数据库 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支持emoji的存储_第2张图片

修改 Typecho 配置文件

将 Typecho 配置文件 config.inc.php 中的 'charset' => 'utf8', 修改为 'charset' => 'utf8mb4',OK,就这样就可以存储 emoji 表情了,哈哈!???

参考文章

[1] 使typecho支持emoji表情
[2] 更改MySQL数据库的编码为utf8mb4

你可能感兴趣的:(typecho,mysql,数据库,typecho)