原来Typecho刚建立是不支持Emoji表情的,只要带了表情的评论都会被吃掉……
原因:由于Emoji就是一种在Unicode位于u1F601-u1F64F区段的字符。超过了默认的UTF-8字符集的编码范围u0000-uFFFF。在 MySQL 中,UTF-8只支持最多 3 个字节,而 emoji 是 4 个字节。
解决方案:更改数据库编码为utf8mb4。
注意:utf8mb4编码在PHP5.5以后才支持,php版本低于5.5的先切换版本再更改。
修改数据库编码
在PhpMyAdmin
中选择Typecho
所用的数据库,我这里是blog
。
选择操作
-> 排序规则
修改为utf8mb4_unicode_ci
->执行
修改数据库表编码
直接修改表编码应该也是可以的,但我没有试过。
这里在命令行运行以下语句:
alter table typecho_comments convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_contents convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_fields convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_metas convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_options convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_relationships convert to character set utf8mb4 collate utf8mb4_general_ci;
alter table typecho_users convert to character set utf8mb4 collate utf8mb4_general_ci;
修改数据库配置文件
打开网站安装根目录下的 config.inc.php
文件,拉到最下方找到数据库信息配置区域,将编码utf8
更改为utf8mb4
,如图。
最后一次更新于2020-04-06
实测不会用
By 然 at April 17th, 2020 at 09:23 am.
@然
啥不会用(。•ˇ‸ˇ•。)
By Soulxyz at April 19th, 2020 at 10:47 am.
୧(๑•̀⌄•́๑)૭
By 蓝色peach at April 12th, 2020 at 04:03 pm.
@蓝色peach
|´・ω・)ノ
By Soulxyz. at April 12th, 2020 at 04:09 pm.
Emoji测试🙂
By Soulxyz at April 6th, 2020 at 02:34 pm.
@Soulxyz
一切正常🖕
By Soulxyz at April 6th, 2020 at 02:34 pm.