mysql 存emoji表情 utf8mb4

emoji表情存入数据库的乱码问题详解
从mysql读取emoji表情显示?的问题详解

写作目的

  • 原有数据库已经设计好,且已经存入过数据,现在也想存入emoji表情,不适合编码存入,解码输出。所以选择修改数据库字符集的方法,utf8mb4 [footnote]

执行方法

  • 数据库修改

配置文件修改my.cnf

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

修改完成,到数据库确认

数据库、表、字段修改

ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
use xxxdb;
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE 表名 CHANGE 字段名 字段名 该字段原来的数据类型 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 程序引用时设置取值方法 set names utf8mb4
  • 导入导出注意事项
mysqldump –default-character-set-utf8mb4 –u 用户名 –p 数据库名 > 导出该文件的物理路径;导入的命令不需要指明编码格式,只需要正常的执行命令便可

总结:这样修改之后,就可以保存emoji数据了,在程序修改db文件的时候,需要确定是在版本库的文件,没有忽略提交的文件,否则存入成功,取出会一直显示问号(?)。如果存入就是问号,那说明配置没有成功,需要再次重启mysql,或者关闭再启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值