首發於高正傑的博客
寫在前面
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 表情了,哈哈!😀😁😂🤣😃😄😅😆😉😊😋😎😍😘😗😙😚🙂🤗😇