[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;
相关推荐
敲上瘾9 分钟前
MySQL数据类型
数据库·c++·mysql·数据库开发·数据库架构
想躺平的咸鱼干10 分钟前
SQL语句的优化
数据库·sql
小陶来咯1 小时前
【高级IO】多路转接之单线程Reactor
服务器·网络·数据库·c++
wei_shuo1 小时前
OB Cloud 云数据库V4.3:SQL +AI全新体验
数据库·人工智能·sql
潇湘秦2 小时前
Oracle非归档模式遇到文件损坏怎么办?
数据库·oracle
极小狐3 小时前
如何使用极狐GitLab 软件包仓库功能托管 maven?
java·运维·数据库·安全·c#·gitlab·maven
野犬寒鸦5 小时前
MySQL索引使用规则详解:从设计到优化的完整指南
java·数据库·后端·sql·mysql
时序数据说5 小时前
IoTDB磁盘I/O性能监控与优化指南
大数据·网络·数据库·时序数据库·iotdb
火云牌神6 小时前
在windows系统中安装图数据库NEO4J
数据库·windows·neo4j
吻等离子7 小时前
解决 MySQL 数据库无法远程连接的问题
数据库·mysql·adb