240
世界上有10种人,一种懂二进制,另一种不懂二进制。

emoji错误:ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value:

1 前言

由于mysql数据库要存储微信昵称,但是当微信昵称带有emoj表情会出现标题的错误。

然后发现是emoj编码是4个字节保存的,于mysql数据库编码格式utf8默认保存的是1到3个字节。

2 解决方法

2.1 修改数据库编码格式,针对mysql大于5.5版本

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';  

修改set character_set_server,character_set_database, collation_database为utf8mb4;

set character_set_server=utf8mb4;...

详情见参考[1]

2.2 直接过滤掉emoj表情

参考nodejs,javascript过滤emoj表情

3 参考

[1] https://www.jianshu.com/p/980b243fa2c3

[2] ER_TRUNCATED_WRONG_VALUE_FOR_FIELD on saving some strings to mysql

  

 

posted @ 2018-07-01 18:42  unionline  阅读(1065)  评论(0编辑  收藏  举报