[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;
相关推荐
曦樂~15 分钟前
【Qt】信号与槽(Signal and Slot)- 简易计算器
开发语言·数据库·qt
ZYMFZ33 分钟前
python面向对象
前端·数据库·python
lang201509282 小时前
MySQL 8.0原子性DDL全面解析
数据库·mysql
viperrrrrrrrrr73 小时前
milvus向量数据库
数据库·大模型·llm·milvus
白衣鸽子3 小时前
MySql数据库同步技术:构建高可用架构的基石
数据库·后端
不良人天码星3 小时前
redis的事务,以及watch的原理
数据库·redis·缓存
韩立学长3 小时前
基于微信小程序的公益捐赠安全平台9hp4t247 包含完整开发套件(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
数据库·微信小程序·小程序
智能化咨询3 小时前
SQL之参数类型讲解——从基础类型到动态查询的核心逻辑
数据库·oracle
doris82043 小时前
使用Yum安装Redis
数据库·redis·缓存
有一个好名字3 小时前
万字 Apache ShardingSphere 完全指南:从分库分表到分布式数据库生态
数据库·分布式·apache