如果有人问你 MySql 怎么存取 Emoji,把这篇文章扔给他
01、前言 Emoji 在我们生活中真的是越来越常见了,几乎每次发消息的时候不带个 Emoji,总觉得少了点什么,似乎干巴巴的文字已经无法承载我们丰富的感情了。对于我们开发者来说,如何将 Emoji 存入 MySql 数据库或者取出来,就变成了一种必须掌握的技能了。 <!--more--> Emoji 是一种图形符号,能够很直观地反应出某种文字含义。它让我想起远古时代的象形文字。 Emoji 其实是一个日语词(えもじ), E 表示"絵", moji 表示"文字";连在一起就是"絵文字",可以更形象化地表情达意。 02、糟糕 如果我们直接将 Emoji 表情存入数据库的话,通常会出现下面这个错误。 因为数据库的字符编码一般是 utf8(支持的编码范围为 \u0000-\uFFFF ),而 Emoji 所在的编码范围是 \u1F601-\u1F64F ,超出 MySql 的边界了。 怎么解决这个问题呢? 03、utf8mb4 可以将 MySql 的字符集由 utf8 调整为 utf8mb4。utf8mb4 是 MySql 在 5.5.3 版本之后增加的一个编码方式,用来兼容四字节的 Unicode(包括 Emoji)。 理论上,utf8mb4 是 utf8 的超集,其中 mb4 是 most bytes 4 的意思,将字符集修改为“utf8mb4”,并不会对已有的 utf8