Typecho 添加 Emoji 表情报错「解决方案」

Typecho 添加 Emoji 表情报错

文章目录

  • [Typecho 添加 Emoji 表情报错](#Typecho 添加 Emoji 表情报错)
    • 前言
      • [Emoji 表情](#Emoji 表情)
      • [utf8mb4 与 UTF8](#utf8mb4 与 UTF8)
    • 解决方案
      • [[1] 数据库编码更改](#[1] 数据库编码更改)
      • [[2] 数据库配置文件更改](#[2] 数据库配置文件更改)

前言

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,这么说就明白了吧 😉?


解决方案

[1] 数据库编码更改

方案 1:如果你正好使用 PhpMyadmin 的话,那么修改起来就比较容易了

进入 PhpMyadmin,选择对应数据库,操作 排序规则 选择 utf8mb4_unicode_ci

修改数据库表排序顺序 UTF8 为 utf8mb4


方案 2

sql 复制代码
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;

[2] 数据库配置文件更改

修改 Typecho 网站 根目录 数据库配置文件 config.inc.php

php 复制代码
$db->addServer(array (
  'host'      =>  localhost,
  'user'      =>  'youruser',
  'password'  =>  'yourpassword',
  'charset'   =>  'utf8mb4',  // 修改这一行 utf8 -> utf8mb4
  'port'      =>  xxxx,
  'database'  =>  'yourdatabase'
), Typecho_Db::READ | Typecho_Db::WRITE);
相关推荐
IvorySQL2 小时前
PostgreSQL 技术日报 (3月7日)|生态更新与内核性能讨论
数据库·postgresql·开源
赵渝强老师2 小时前
【赵渝强老师】金仓数据库的数据文件
数据库·国产数据库·kingbase·金仓数据库
随逸1775 小时前
《Milvus向量数据库从入门到实战,手把手搭建语义检索系统》
数据库
神秘的猪头6 小时前
🚀 React 开发者进阶:RAG 核心——手把手带你玩转 Milvus 向量数据库
数据库·后端·llm
IvorySQL1 天前
PostgreSQL 技术日报 (3月6日)|为什么 Ctrl-C 在 psql 里让人不安?
数据库·postgresql·开源
NineData1 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
IvorySQL1 天前
PostgreSQL 技术日报 (3月5日)|规划器控制力升级,内核能力再进阶
数据库·postgresql·开源
数据组小组2 天前
免费数据库管理工具深度横评:NineData 社区版、Bytebase 社区版、Archery,2026 年开发者该选哪个?
数据库·测试·数据库管理工具·数据复制·迁移工具·ninedata社区版·naivicat平替
悟空聊架构2 天前
基于KaiwuDB在游乐场“刷卡+投币”双模消费系统中的落地实践
数据库·后端·架构