•时间:2020-11-11
•环境:go1.13,gin,gorm,mysql5.7 •需求:后端接口接收数据(包含emoji表情符号)后存入mysql5.7 •报错:
1366:Incorrect string value: '\xF0\xA3\xAD\x96\xEF\xBC ... for column ‘XXX’ at row 1
•修复:
1.centos系统编辑/etc/my.cnf
vim /etc/my.cnf新增内容:[client]default-character-set=utf8mb4[mysqld]character-set-server=utf8mb4collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' #skip-character-set-client-handshake = truesql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION[mysql]default-character-set=utf8mb4重启mysqlsystemctl restart mysqld
2.修改数据库编码
ALTER DATABASE db123 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
3.修改对应表编码
ALTER TABLE user DEFAULT CHARACTER SET utf8mb4 collate utf8mb4_bin;
4.修改对应字段的编码
ALTER TABLE db123.user CHANGE COLUMN nickname nickname VARCHAR(250) CHARACTER SET 'utf8mb4' NULL DEFAULT NULL COMMENT '昵称' ;
5.gorm连接支持utf8mb4
?parseTime=True&loc=Local&charset=utf8mb4&collation=utf8mb4_unicode_ci