Please Use utf8mb4

最近遇到这样一个问题,MySQL 执行报错: 查询出错 (1366): Incorrect string value: ‘\xF0\x9F\x98\x84\xF0\x9F…’ for column ‘nickName’ at row 1 执行的 SQL 语句是: user 表中 nickName 字段的定义是: 照理说 utf8mb4 编码存储表情符号是没有问题的,于是参照 Stack Overflow 的回答把 vachar(255) 改成 varbinary(255),的确能够执行成功了。 但是问题接踵而来:查询的时候需要不区分大小写,然而 varbinary 类型不支持 case insenstive。 折腾了一番之后再回来看这个问题,一开始就不是 varchar 和 varbinary 的问题,而是 MySQL 连接的编码设置错了。 把 MySQL…

 1,031 total views

Published