微信开发保存昵称,emoji表情,花样采坑

现总结一下,再说废话

emoji:?


1.emoji表情是4个字节,而普通的utf8是3个字节,所以要用utf8-mb4

2.MySQL配置后,图形化工具不一定会得到新的配置

3.图形化工具显示不了emoji标签

4.微信昵称支持emoji,而MySQL的utf8不支持

5.修改MySQL配置后,要重启MySQL服务

6.如果重启失败,停止后再启动就可以了

最近,公司在做一个微信投票,大致需求就是用户进来授权,然后投票,

而我,这边得到用户的信息当然是先保存了,就像一位大牛说的,万恶的微信支持 emoji标签做为昵称,

恰好,我的一位同事昵称是:?,保存到数据库一顿报错

sql语句:

 insert into emoji.emoji (txt) value ('?') 

Error Code: 1366. Incorrect string value: '\xF0\x9F\x8D\x8B' for column 'txt' at row 1 0.387 sec

于是,网上各种查,找到了答案,其实,这个是正确的,可以解决问题

[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

 

把这个放到 /etc/my.cnf 中,然后重启MySQL,命令自己去百度吧

然后看一下,

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

看看:

这样其实就生效了,

可是,我看的是,可视化工具,这个就坑了,这时候可视化工具里的配置,并没有变

我用的是,MySQLworkbench,我是在测试表里测试,为了操作方便我就用的图形化工具,所以我插入一直报错,后来对比一下终端才发现问题,其实我的配置是生效了的

至于为什么会这样,还请大神指教!,我也查了,也问了,但是没找到答案

,这就是最好的证明

但是,workbench是显示不出来的,他显示的是一个问号

痛苦采坑,各种煎熬

 

转载于:https://www.cnblogs.com/wang-di/p/9408122.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值