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);
在文章后台重新输入小表情,然后保存回到页面,小表情成功显示了。