介绍
- 大家在typecho博客写文章时,很多人都喜欢使用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版本。
- 下面开始带大家一步步的设置
修改数据库字符集编码
----------
- 请直接使用SQL执行以下👇命令修改,我手动修改无效Emoji表情显示??。
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;
SQL
复制
修改 Typecho 配置文件中数据库字符接
修改 Typecho 配置文件'config.inc.php'中数据库定义参数中的 utf8 为 utf8mb4:
$db->addServer(array (
'host' => localhost,
'user' => 'myuser',
'password' => 'mypass',
'charset' => 'utf8mb4', //将utf8修改为utf8mb4
'port' => 3306,
'database' => 'mybase'
), Typecho_Db::READ | Typecho_Db::WRITE);
PHP
复制
成功后显示参照本文。
版权属于:Mr.Tlyer
本文链接:https://ntnas.top:82/typecho/archives/307/
转载时请注明出处
最新回复