怎么将emoji表情存入mysql

mysql

5.5.3

开始,mysql

支持一种

utf8mb4

字符集,这个字符集能够支持

4

字节的

utf8

编码的字符。

utf8mb4

字符集能够完美地向下兼容

utf8

字符串。在数据存储方面,当一个普通中文字符存入数据库时仍然占用

3

个字节,在存入一个

unified

emoji

表情的时候,它会自动占用

4

个字节。所以在输入输出时都不会存在乱码的问题了。由于

utf8mb4

utf8

的超集,从

utf8

升级到

utf8mb4

不会有任何问题,直接升级即可;如果从别的字符集如

gb2312

或者

gbk

转化而来,一定要先备份数据库。然后,修改

mysql

的配置文件

/etc/my.cnf,修改连接默认字符集为

utf8mb4

,然后在连接数据库以后首先执行一句

sql:

set

names

utf8mb4。

1.

修改my.cnf

my.ini

[mysqld]

character-set-server=utf8mb4

[mysql]

default-character-set=utf8mb4

修改后重启mysql

登陆mysql,

show

variables

like

'character%'

可以查看编码是否已经修改成功。

2、修改数据库和数据表为相应的

utf8mb4

格式。

alter

table

table_name

convert

to

character

set

utf8mb4

collate

utf8mb4_bin

3、在代码中,连接数据库成功后,执行

"set

names

utf8mb4"

通过上文我们已经知道一种解决办法了,但有一个硬性条件就是你的数据库版本。当你的数据库版本没有达到5.5.3怎么办呢…总结一下,mysql支持存储emoji表情的方法,至少有两种。1.修改数据库编码为utf8mb4,前提是你的mysql数据库版本必须得是5.5.3及以后的2.将带emoji的文本转为base64来进行存储,返回时进行相应解码返回

之前我也遇到这样的问题,具体原因是因为emoji表情大小为四个字节,但一般的utf8编码下的mysql只能存储2到3个字节,具体的解决办法是把要存储的emoji表情的那个字段类型改为longtext,要是不行把utf8编码改为utf8mb4

我当时好像就是这么解决的,你试试


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8718094.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-20
下一篇 2023-04-20

发表评论

登录后才能评论

评论列表(0条)

保存