介紹
大家在typecho博客寫文章時,很多人都喜歡使用emoji表情(比如👌🐈這些圖標)但是typecho的數據庫類型默認不支持emoji編碼,因為Emoji是一種在Unicode位於u1F601-u1F64F區段的字符。這個顯然超過了目前常用的UTF-8字符集的編碼范圍u0000-uFFFF。
在MySQL中,UTF-8只支持最多3個字節,而emoji是4個字節。所以如果你不修改數據庫的話,typecho是無法支持Emoji表情的。
當然好消息是utf8mb4其實是完全兼容utf-8,修改后,不會影響現有數據及后期的數據。
要注意的是utf8mb4編碼在PHP5.5以后才支持,所以請確保你的PHP版本在5.5以上,typecho程序推薦PHP5.6版本。
下面開始帶大家一步步的設置。
數據庫編碼修改
進入PhpMyadmin,選擇對應的數據庫,選擇操作——排序規則——選擇
utf8mb4_unicode_ci
並執行。

數據庫表編碼修改
- 選擇SQL-復制下面sql語句代碼-點擊右下角執行。
- 注意數據庫一定要和網站的數據庫對應。
alter table typecho_comments convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_contents convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_fields convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_metas convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_options convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_relationships convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_users convert to character set utf8mb4 collate utf8mb4_unicode_ci;

如果有別的表,比如友情鏈接插件,它就會創建一個 links 表,這里的話也是建議一起改了。
另外,如果安裝時改過前綴,也只需對以上語句做相應修改。
配置網站
- 最后在網站根目錄
config.inc.php
配置文件中找到以下代碼:
'host' => localhost,
'user' => 'youruser',
'password' => 'yourpassword',
'charset' => 'utf8mb4', //將utf8修改為utf8mb4