typecho 博客建立完成之後,會發現如果插入一些小表情,頁面渲染完之後,表情不會顯示,並且表情之後的內容全部消失,導致體驗感很差。
表情無法顯示的原因是 uft-8 編碼的問題,無法識別小表情,需要將其改成 utf8mb4
第一步,進入資料庫#
首先登入博客後台的資料庫,然後點擊 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;
直接複製,然後點擊右下角的執行
第二步,修改 typecho 配置檔#
我使用的寶塔面板,點擊左側 網站
,然後點擊我們這個網站的根目錄,進入之後,可以找到一個 config.inc.php
的檔案,進入然後滑到最下面。
** 可以發現 'charset' => 'utf8',
** 下面我為了更直觀的顯示,將其註釋掉,重新寫的,實際操作中,將 utf8
改為 utf8mb4
即可。
/** 定義資料庫參數 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
'host' => 'localhost',
'user' => 'blog',
'password' => 'blog',
/** 'charset' => 'utf8', */
'charset' => 'utf8mb4',
'port' => '3306',
'database' => 'blog',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);
在文章後台重新輸入小表情,然後儲存回到頁面,小表情成功顯示了。