关于mysql兼容emojo表情

   一般这个问题会在需要通过第三方登录的产品中会遇到,因为直接从第三方那边获取过来的昵称很有可能是带各种emojo表情的,然后假如你的mysql数据库不兼容的话,那么会给你报错,使原本可以正常登录的系统报错;当然在选择想要兼容emojo表情前必须确认一下自己的mysql版本,要 >= MySQL 5.5.3版本、从库也必须是5.5的了、低版本不支持这个字符集、复制报错;否则我就建议因md5或者什么其他方法入库了;接下来就说说怎么做:

首先需要停止mysql服务,修改my.cnf或my.ini文件

[client]
 default-character-set = utf8mb4

[mysql]
 default-character-set = utf8mb4

[mysqld]
 character-set-client-handshake = FALSE
 character-set-server = utf8mb4
 collation-server = utf8mb4_unicode_ci
 init_connect='SET NAMES utf8mb4'

然后重启服务

mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

再根据你的需要修改相应表的字段的字符集,将需要存emojo表情的修改成091620_BKaZ_2416235.png

 

注意:类似用nav终端去插入是无法插入的,如果用程序代码去插入的话是可以的,而且那个jdbc链接中必须去掉指定的编码,这样就可以入库了,虽然入库后在客户端那边看到的是问号,但是当你用程序查出来的时候是正常的;如果不修改mysql的配置,去掉jdbc连接的字符串编码,那么用程序也是可以入库,但是查出来的时候却是乱码的;

兼容emojo标签的几个必要条件:

1.更改mysql的配置

2.修改jdbc链接的指定字符集

3.修改对应表字段的字符集

提示:

1.库的编码是无所谓的,就算设置成utf-8也不影响emojo的入库和查询

2.入库后在客户端看到的那个字段里emojo表情变成了问号,然后用命令行查询的时候直接没有了

093422_s39f_2416235.png093430_Zau9_2416235.png

3.emojo表情存入redis后,目前没有任何问题;

 

 

 

转载于:https://my.oschina.net/1107156537/blog/1608162

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值