Loading... Typecho 原生是不支持 emoji 表情的,比如: 😀😃😄😁😆😅🤣😂🙂🙃😉😊😇🥰😍🤩😘😗☺️😚😙😋😛😜🤪😝🤑🤗🤭🤫🤔🤐🤨😐😑😶😏😒🙄😬🤥😌😔😪🤤😴😷🤒🤕🤢🤮🤧🥵🥶🥴😵🤯🤠🥳😎🤓🧐😕😟🙁☹️😮😯😲😳🥺😦😧😨😰😥😢😭😱😖😣😞😓😩😫🥱😤😡😠🤬 这样的一些表情符号呢,实际上又不是一张图片,你可以理解为是一种特殊的字体,这种字体的一个字就是一个表情,在互联网页面中能够呈现比较好看的效果。在默认为 utf-8 编码数据库中,不能支持保存这种表情,你一旦在分类目录名称或者文章内容中包含了这种表情,保存 typecho 的时候就会显示报错:`Database Query Error` 怎么办呢? 可以通过下述方法使数据库支持,原理是把数据库编码转为 utf8mb4 格式,这种格式就可以保存 emoji 表情啦,之前的编码不可以的原因是这种表情他们的编码长度比 utf-8 长,所以存不了。 ## 解决办法 1. 进入数据库,直接运行下列语句: ```sql 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; ``` 2. 修改数据库的配置文件 网站根目录数据库配置文件 `config.inc.php`,大约在 60 行: ```php /** 定义数据库参数 */ $db = new Typecho_Db('Pdo_Mysql', 'typecho_'); $db->addServer(array ( ... 'charset' => 'utf8mb4', // 将原来的 utf8 修改为 utf8mb4 ... ), Typecho_Db::READ | Typecho_Db::WRITE); Typecho_Db::set($db); ``` 保存该文件即可生效。 这样,你的文章内容或者分类的标题就可以保存包含 Emoji 的表情啦! 文章参考: [https://blog.zwying.com/archives/6.html](https://blog.zwying.com/archives/6.html) 最后修改:2021 年 08 月 22 日 © 允许规范转载 赞 赠人玫瑰,手留余香