当前位置: 首页 > article >正文

[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ù)​:常用于人名(如荀彧)

 

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;

 

 

 

 

 


http://www.kler.cn/a/596910.html

相关文章:

  • windows 上的cscript javascript
  • 2. 商城前端部署
  • 关于labview和C#调用 Bartender打印机条码
  • vue-splice方法
  • 正交分析法 + Prompt Optimizer:五维复杂测试用例设计的终极指南**
  • UNIX网络编程笔记:基本TCP套接字编程
  • 《Gradio Python 客户端入门》
  • Unity 与 JavaScript 的通信交互:实现跨平台的双向通信
  • 【FPGA开发】FPGA点亮LED灯(增加按键暂停恢复/复位操作)
  • 常用高压30V以上DCDC开关电源稳压器
  • Linux——线程
  • WMS仓储管理系统架构介绍
  • JavaWeek3-泛型,树和集合List接口
  • 西门子仿真实例位置
  • Maven环境搭建与配置
  • 建筑安全员考试:“知识拓展” 关键词驱动的深度备考攻略
  • 【单片机通信技术应用——学习笔记三】液晶屏显示技术,取模软件的应用
  • 向量库特点和使用场景
  • 强化学习(赵世钰版)-学习笔记(完)(10.Actor-Critic方法)
  • 【vue的some和filter】