关于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后,目前没有任何问题;


分享给朋友:
您可能感兴趣的文章:
随机阅读: