typecho 默认的数据库不支持emoji🎉
,所以需要通过一下方式修改数据库的编码。
如果你的数据库不支持emoji,但是在文章编辑中或者主题设置中使用了emoji会导致你的内容丢失!
utf8mb4编码只有在PHP5.5以后才支持
数据库表编码修改
进入数据库,执行以下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 为 utf8mb4
:
$db->addServer(array (
'host' => localhost,
'user' => 'root',
'password' => 'root',
'charset' => 'utf8mb4', //修改这一行
'port' => 3306,
'database' => ''
), Typecho_Db::READ | Typecho_Db::WRITE);
7 条评论
技术文,不明觉历。
我也是别的地方看到想要分享出来
是不是只有MySQL支持emoji,sqlite数据库就不支持啊?
MySQL是修改了数据表支持4个字节存储展示emoji的,sqlite我没用过,不太清楚
📱的评论没显示全,pc可以选这个
( ๑´•ω•) "(ㆆᴗㆆ)只有颜文字吗?
📱的评论没显示全,pc可以选这个