如何讓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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章