如何讓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_safe]
default-character-set = utf8mb4
[client] 
default-character-set = utf8mb4 
[mysql] 
default-character-set = utf8mb4 
[mysqld] 
character-set-server = utf8mb4 
修改 MySQL 配置文件中的編碼格式
  • 重啟數據庫 service mysql restart (CentOS 中是 service mysqld restart)
  • 連接數據庫的命令如下,回車后再輸入密碼。
mysql -uroot -p
  • 查看 MySQL 編碼格式,命令如下:
SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
查看MySQL編碼格式

修改 Typecho 配置文件

將 Typecho 配置文件 config.inc.php 中的 'charset' => 'utf8', 修改為 'charset' => 'utf8mb4',OK,就這樣就可以存儲 emoji 表情了,哈哈!????????????????????????????????????????

參考文章

[1] 使typecho支持emoji表情
[2] 更改MySQL數據庫的編碼為utf8mb4

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容