​​让mysql支持emoji表情 !

  • A+
所属分类:SQL技巧

​​让mysql支持emoji表情 !

一、问题及原因

APP产品想对Emoji进行支持,但发现mysql数据库无法写入表情。原因是我们的mysql数据库默认用的是utf8编码,utf8编码存储时用的是三个字节,但Emoji表情是4个字节,所以导致了数据插入异常。

原因找到了就很好办,mysql5.5.3之后的版本支持utf8mb4编码,这种编码是utf8的升级版,用的是4个字节进行存储。所以需要做的就是把mysql字符集从utf8升级为utf8mb4就行了。

二、升级步骤

1、备份数据库

虽然utf8mb4兼容utf8,但最好还是作个数据库备份。

2、升级mysql版本到5.5.3以上

这个就不说了,根据你的服务器系统做mysql升级。

3、修改服务器上mysql默认编码,修改数据库、表、列的字符集为utf8mb4

修改服务器上mysql配置文件my.conf(如ubuntu为例,一般在/etc/mysql/my.conf):

[client] #xxx 已有配置 default-character-set = utf8mb4 [mysql] #xxx 已有配置 default-character-set = utf8mb4 [mysqld] #xxx 已有配置 character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4'

改完要重启mysql

修改数据库、表、列字符集:

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

这里看到没有修改列的字符集,因为我试过后发现,改了表的字符集后,表中列的字符集自动修改为utf8mb4了。

改完可以查看一下:

​​让mysql支持emoji表情 !

这里要确保红框内变量值是utf8mb4。

 

​​让mysql支持emoji表情 !

可以看到列的字符集已经改过来了。

4、检查列的最大长度及索引

这个就根据情况自己检查调整了。

5、修改客户端连接程序编码

把代码中连接数据库时的字符集设置为utf8mb4即可

 

参考文章:

1、How to insert utf-8 mb4 character(emoji in ios5) in mysql?

2、https://segmentfault.com/a/1190000000616820

 

​快来试试吧。

 

学习资料见知识星球。

以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。

快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利​​​​!

更多技巧, www.excelbook.cn

欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;

​​让mysql支持emoji表情 !

你将获得:

1、价值上万元的专业的PPT报告模板。

2、专业案例分析和解读笔记。

3、实用的Excel、Word、PPT技巧。

4、VIP讨论群,共享资源。

5、优惠的会员商品。

6、一次付费只需99元,即可下载本站文章涉及的文件和软件。

  • 我的微信
  • weinxin
  • 我的知识星球
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: