[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;
相关推荐
2401_8321319512 分钟前
Python单元测试(unittest)实战指南
jvm·数据库·python
打工的小王1 小时前
redis(四)搭建哨兵模式:一主二从三哨兵
数据库·redis·缓存
Anarkh_Lee1 小时前
【小白也能实现智能问数智能体】使用开源的universal-db-mcp在coze中实现问数 AskDB智能体
数据库·人工智能·ai·开源·ai编程
橘子132 小时前
MySQL用户管理(十三)
数据库·mysql
Dxy12393102162 小时前
MySQL如何加唯一索引
android·数据库·mysql
我真的是大笨蛋2 小时前
深度解析InnoDB如何保障Buffer与磁盘数据一致性
java·数据库·sql·mysql·性能优化
怣502 小时前
MySQL数据检索入门:从零开始学SELECT查询
数据库·mysql
shengli7222 小时前
机器学习与人工智能
jvm·数据库·python
2301_765703142 小时前
Python迭代器(Iterator)揭秘:for循环背后的故事
jvm·数据库·python
倔强的石头1062 小时前
关键信息基础设施的数据库选型:高可用、全链路安全与平滑替代的技术实践
数据库·安全·金仓数据库