问题以及解决方案

在编辑文章的时候,我们使用emoji,比如😀之类表情是无法正常插入数据库的,因为默认的字符集是utf8,utf8使用的是三字节,而emoji是四字节,因此会导致该问题发生,我们可以使用utf8mb4来处理兼容性,具体通过以下两步即可解决:

  • 在数据库管理工具选择指定的数据库执行以下命令

    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根目录的config.inc.php中修改数据库参数中的'charset' => 'utf8mb4'
最后修改:2023 年 08 月 02 日
如果觉得我的文章对你有用,请随意赞赏