mysql存储emoji表情的麻烦事
最近都在和微信相关的平台打交道,微信的有些用户用emoji表情作为昵称的一部分或者全部,那真的是很可爱。可是就是看起来很可爱的emoji,处理起来是一点都不可爱!
emoji的由来
emoji这玩意,“很不幸”地被日本发明,最初是日本在无线通信中所使用的视觉情感符号。作为国际范,emoji已经像空气一样充满整个世界,它在中国有一个贴切的中文名叫做“小黄脸”。这玩意无处不在了,支持它是不存在争议的!
emoji的编码
emoji表情对应的Unicode编码在mysql数据库里面,需要用到的字符集是utf8mb4。unicode.org
专门整理了一个完整的emoji的编码表。具体地址:https://unicode.org/emoji/charts/full-emoji-list.html
存储emoji
回到正题,如果要在mysql数据库里面存储emoji,就需要用到utf8mb4字符集。而且注意的是,必须是数据库默认字符集、数据表默认字符集以及存储它的具体字段字符集也是utf8mb4。
1 | mysql -u root -p |
输入正确的密码,进入mysql命令行模式。
1 | mysql> use leo; |
上面的leo是数据库名称,leo_table是数据表,table_emoji是数据库字段。(mysql>只是为了表示是mysql命令行模式下执行,无作用)。依次作用如下:
- 切换数据库;
- 更改数据库字符集;
- 更改数据表字符集;
- 更改字段字符集;
需要特别注意的是最后的更改字符集,一定要确定字段的类型、长度等定义。
修改mysql配置文件my.cnf
1 | [client] |
注意对比,没有的就新增,存在的修改即可!
最后
补充一下,字符集utf8mb4是在mysql5.5.3以上版本后才出现的,所以要确保mysql版本不能太低。重启一下mysql服务,就可以愉快地存储这可爱的emoji表情了。