mysql 字符集导致问题
1. 问题
线上插入表时报错:"Incorrect string value"
2.定位
某接口字段入参是 "Hello123😁54",插入的表结构如下(举例):
CREATE TABLE `student` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(64) DEFAULT NULL COMMENT '字段注释',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_sequence_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='表注释';
因MySQL字符集是utf8, utf8 编码最大字符长度为 3 字节,仅支持Unicode 中的基本多文种平面(BMP),而表情符等不在其中的unicode字符都无法使用。
3.解决
- MySQL utf8mb4 专门用来兼容四字节的unicode(mb4就是most bytes 4的)
- 前端限制输入此类字符。
本文来自博客园,作者:执大象,转载请注明原文链接:https://www.cnblogs.com/li-junjie/articles/18743707

浙公网安备 33010602011771号