[HY000][1366] Incorrect string value: ‘å¼ ä¸‰‘ for column ‘name‘ at row 1

常见原因

  1. 字符集不兼容

    • 插入的数据包含当前字符集(如 latin1)不支持的特殊字符(如中文、Emoji 等)。

    • 表、列或连接的字符集未正确配置为支持目标字符(如未使用 utf8mb4)。

  2. 客户端/服务端编码不一致

    • 客户端连接时未指定正确的字符集,导致传输数据与服务端预期不符。
  3. 无效字符或二进制数据

    • 试图插入无法被当前字符集解析的二进制数据。

解决方案

检查数据库和连接的字符集

复制代码
SHOW VARIABLES LIKE '%database';

需修改数据库配置(需管理员权限)

复制代码
ALTER DATABASE rainbow CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

配置连接字符集

在连接 MySQL 时指定字符集(以 JDBC 为例):

jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8

修改表的默认字符集

复制代码
ALTER TABLE employees CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

重启数据库 我用的系统是红帽

service mysqld status

service mysqld restart

问题解决

utf8mb4 数据库字符集

特性 utf8 (MySQL) utf8mb4 (MySQL)
Unicode 版本 仅支持 Basic Multilingual Plane (BMP),即 U+0000 到 U+FFFF 支持 完整 Unicode ,包括 Supplementary Planes(扩展字符集,如 Emoji、古文字、特殊符号等),即 U+0000 到 U+10FFFF
存储容量 每个字符最多 3 字节 每个字符最多 4 字节
实际标准 不符合 UTF-8 规范(存在历史遗留问题)

生僻字

特别是生产 数据迁移改造 ,容易出现字节长度问题,因此设计表时需考虑使用场景。

​颛顼 (zhuān xū)​:五帝之一

​帝喾 (dì kù)​:上古帝王

​金兀术 (jīn wù zhú)​:金朝名将

​麴 (qū)​:姓氏(如麴义)

​彧 (yù)​:常用于人名(如荀彧)

sql 复制代码
INSERT INTO rainbow.employees (name, gender, age, income) VALUES  ('​麴', 'Male', 30, 5000.00);
INSERT INTO rainbow.employees (name, gender, age, income) VALUES  ('​彧三', 'Male', 30, 5000.00);


select  name ,length(name) from rainbow.employees;
相关推荐
SkyWalking中文站2 小时前
BanyanDB 0.11.0:新特性与升级指南
数据库
₍˄·͈༝·͈˄*₎◞ ̑̑码3 小时前
MyBatis操作数据库
数据库·mybatis
刃神太酷啦5 小时前
Redis 进阶核心:持久化 (RDB/AOF)、事务与主从复制全解析----《Hello Redis!》(5)
linux·c语言·数据库·c++·redis·缓存·bootstrap
丁丁点灯o5 小时前
Oracle中使用外键的场景及不适用外键的情况
数据库·oracle
天天进步20155 小时前
Pixelle-Video 源码解析 #18:声音克隆功能:参考音频如何影响解说效果?
数据库·音视频
不懂的浪漫6 小时前
ToDesk 连接 Linux 后分辨率过低的解决方法
linux·运维·数据库
布莱克6056 小时前
Redis 详解:从核心数据结构到高可用架构
数据库
冰暮流星7 小时前
mysql之左外连接与右外连接
数据库·sql
jyOverQ7 小时前
MySQL 联合索引怎么用?最左匹配原则到底是什么意思?
数据库·mysql
oradh7 小时前
Oracle enq: US - contention 等待事件总结
数据库·oracle