首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL中的utf8和utf8mb4

MySQL中的utf8和utf8mb4

作者头像
XiaoA
发布2024-08-31 16:33:23
发布2024-08-31 16:33:23
34400
代码可运行
举报
运行总次数:0
代码可运行

起因

评论中增加了Emoji表情,结果写入的时候报错了,找了半天原因,原来是数据库utf8utf8mb4的区别问题。

区别

  • utf8:通常指的是 utf8(也称为 utf8_general_ciutf8_bin),它支持标准的 Unicode 字符,但不支持四个字节的字符(如 Emoji、某些表情符号和其他复杂字符)。
  • utf8mb4:这是一种扩展的 UTF-8 编码,它可以支持所有 Unicode 字符,包括四个字节的字符(如 Emoji)。

Typecho配置

config.inc.php中数据库参数的配置中有charset的配置,可以配置为utf8utf8mb4

代码判断

在不关心具体数据库的判断中可以直接通过配置中的charset判断是否为utf8mb4

代码语言:javascript
代码运行次数:0
运行
复制
$db = Typecho_Db::get();
$dbconfig = $db->getConfig(Typecho_Db::WRITE);
if($dbconfig['charset'] === 'utf8mb4') {
   return true;
}
return false;

建议

不管是否存储Emoji,建议还是使用utf8mb4编码。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 起因
  • 区别
  • Typecho配置
  • 代码判断
  • 建议
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档