MySQL 服务器无法存 Emoji 表情的解决方案

发布于 2020-03-26 20:58:27 字数 865 浏览 1294 评论 0

utf8 是三字节,utf8mb4 是 4 字节而,emoji 表情也是 4 字节,修改 mysql 配置文件 my.cnf

[client] 
default-character-set = utf8mb4
[mysql] 
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

重启 MySQL Server,在mysql命令行中输入:

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%'

总结:

  1. 对于 mysql 字符集我们不想出现乱码情况有一个经验就是 character_set_client、character_set_connection、character_set_results 字符尽量设置成一致的。
  2. mysql 的字符集的作用域有三个层级一个数据库级,一个是表级,一个是列级(字段级别的)。优先级是:列级》表级》数据库级。从优先级知道如果存 emoji 的那个字段不是 utf8mb4 字符集,那么即使数据库是 utf8mb4 也是无济于事的。

最后逐步修改数据库,数据表、字段。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

文章
评论
84963 人气
更多

推荐作者

夢野间

文章 0 评论 0

doggiejohn

文章 0 评论 0

就此别过

文章 0 评论 0

初见终念

文章 0 评论 0

qq_rvKjBH

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文