最近在使用一个主题时,看到搭配emoji表情可以让改主题更加美观,于是我就上了,结果在将emoji表情放进去保存的时候报错:Database Query Error,于是问起了度娘。最后的结果是:
在 MySQL 中,UTF-8只支持最多 3 个字节,而 emoji 是 4 个字节。 Typecho默认不支持emoji表情,其实不是程序的锅,而是由于编码的问题,只需要将默认的数据库编码utf8修改为utf8mb4即可,当然别忘了,utf8mb4编码只有在PHP5.5以后才支持。. 简单三步即可让typecho支持emoji.
解决办法: 1.首先我们进入数据库控制面板,然后点击我们博客对应的数据库。
2.然后我们点击sql并将我们的代码粘贴进去点击右下角的执行按钮!
代码语言:javascript
复制
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;
3.我们到网站的根目录下找到config.inc.php在其中的六十行左右我们可以看到如下代码,然后我们将原来的utf8修改为 utf8mb4替换掉保存即可
代码语言:javascript
复制
/** 定义数据库参数 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
'host' => 'localhost',
'user' => '这是你的数据库名',
'password' => '你数据的密码',
'charset' => 'utf8mb4', // 将原来的utf8修改为 utf8mb4
'port' => '这是你的数据库端口',
'database' => '这是你的数据库名',
总结: 这样我们就可以在typecho中自由自在的使用emoji表情了