Typecho支持emoji表情
问题:网页不显示emoji,每次使用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并执行。
数据库表编码修改
选择typecho数据库-复制下面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_nabo 和 typecho_metingcache表,也一一起改了
如果有别的表,比如友情链接插件,它就会创建一个 links 表,建议一起改了。
配置网站
最后在网站根目录config.inc.php配置文件中找到以下代码:
‘host’ => localhost,
‘user’ => ‘youruser’,
‘password’ => ‘yourpassword’,
‘charset’ => ‘utf8mb4’, //将utf8修改为utf8mb4
重新打开网站,这时候前后台都能使用emoji了
方法参考自https://www.joynop.com/p/407.html。防丢失转运,侵删,谢谢!