SQLSTATE[HY000]: General error: 1366 Incorrect string value

 MySQL  2019-09-17  admin  4176  5637

在mysql中写入部分繁体字,出现错误:

SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\xAC\x98\x94' for column 'name' at row 1


Snipaste_2019-09-17_22-40-38.png

可以看到错误提示中的字符'\xF0\xAC\x98\x94' ,这对应UTF-8编码格式中的4字节编码。汉字一般不会超过3个字节,这里出现4个字节是因为不常用的繁体字。mysql中的utf-8并不是真正意义上的utf-8,它只能存储1~3个字节长度的utf-8编码,如果想存储4个字节的必须用utf8mb4类型。

解决方法:

1. 修改表或字段的字符集编码为utf8mb4,排列规则为 utf8mb4_general_ci;

2. 修改PHP连接数据库配置,'charset'=> 'utf8mb4';


如果文章对您有帮助,点击下方的广告,支持一下作者吧!

相关推荐


阿里巴巴java开发手册MySQL 数据库开发规范

阿里巴巴java开发手册MySQL 数据库开发规范

2021年最新省市县三级行政区划数据数据库sql文件

2021年最新省市县三级行政区划数据数据库sql文件,并标注拼音,拼音首字母

Laravel 设置数据库的表前缀

1.找到环境变量配置文件 .env在数据库配置最后添加DB_PREFIX=ln_即DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=demo2019DB_USERNAME=rootDB_PASSWORD=rootDB_PREFIX=ln_2.修改配置文件 config/database.php'mysql' =&

小米开源的数据库SQL性能分析工具SOAR,windows版安装使用

SOARSOAR(SQL Optimizer And Rewriter)是一个对SQL进行优化和改写的自动化工具。 由小米人工智能与云平台的数据库团队开发与维护。功能特点跨平台支持(支持Linux, Mac环境,Windows环境理论上也支持,不过未全面测试)目前只支持 MySQL 语法族协议的SQL优化支持基于启发式算法的语句优化支持复杂查询的多列索引优化(UPDATE, INSERT, DEL