关于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表情的修改成


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

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

1.更改mysql的配置

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

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

提示:

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

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

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

你可能感兴趣的:(关于mysql兼容emojo表情)