Loading... # Typecho添加Emoji表情报错 > Typecho添加Emoji表情不支持,报错 Database Query Error; ## Emoji 表情 emoji就是表情符号,来自日语词汇“絵文字”(假名为“えもじ”,读音即emoji),随着技术的发展被使用得越来越广泛。如下边这些表情: 😀😁😂🤣😃😄😅😆😉😊😋😎😍😘🥰😗🙄🤐😐😪😴 👩👨🧑👧👦🧒👶👵👴👩🦳👼🤶👮♀️👩🏭 🎈🎆🎇🧨✨🎉🎊🎃🎄🎋🎍🎎🎏🎐🎑🧧🎀🎁🎗🎞🎟🎫🎠🎡👟🥾🥿🥌 🍕🍔🍟🌭🍿🥟🍛🍗🚗🚓🚕🚝🚈🚅🚄❤🧡💛✝☦♐♏♎♍ ## utf8mb4 与 UTF8 utf8mb4 它占用 4 个字节的存储空间,而 utf8 是 3 个字节,这样,用 3 个字节去存储 4 个字节的东西,很明显是存不下的,会报错,所以要用 utf8mb4,并且 utf8mb4 是兼容 utf8 的。 **注意**:对于 MariaDB 而言貌似 utf8mb4 有一个使用限制,MariaDB 版本必须是 5.5 以上;对于PHP而言,只有在PHP5.5以后才支持。 > Emoji 表情 是 4 个字节。而我们默认的 typecho数据库表编码为 UTF-8,这么说就明白了吧😉? ## 三个步骤 </br> <div class="tip inlineBlock warning"> 1 和 2 任选一种 </div> ### 1、修改数据库编码 如果你正好使用 `PhpMyadmin` 的话,那么修改起来就比较容易了。 进入`PhpMyadmin`,选择您的数据库,操作 <i class="fa fa-angle-double-right" aria-hidden="true"></i> 排序规则 <i class="fa fa-angle-double-right" aria-hidden="true"></i> 选择`utf8mb4_unicode_ci` 。 ### 2、修改数据库表编码 ``` 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; ``` ### 3、修改数据库配置文件 修改Typecho 网站`根目录`数据库配置文件`config.inc.php`。 ``` $db->addServer(array ( 'host' => localhost, 'user' => 'youruser', 'password' => 'yourpassword', 'charset' => 'utf8mb4', //修改这一行 utf8 -> utf8mb4 'port' => 3306, 'database' => 'yourdatabase' ), Typecho_Db::READ | Typecho_Db::WRITE); ``` End Thanks !😪 最后修改:2020 年 11 月 25 日 02 : 15 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 ×Close 赞赏作者 扫一扫支付 支付宝支付 微信支付
解决很久,终于好了。