MySQL生僻字插入失败的处理方法(Incorrect string value)
发布时间 - 2026-01-11 01:06:47 点击率:次最近,业务方反馈有个别用户信息插入失败,报错提示类似"Incorrect string value:"\xF0\xA5 ..... " 看这个提示应该是字符集不支持某个生僻字造成的。

下面是在虚拟机里复现的场景:
step1、模拟原始表结构字符集环境:
use test; CREATE TABLE `t1` ( `id` int(10) NOT NULL AUTO_INCREMENT, `real_name` varchar(255) CHARACTER SET utf8 DEFAULT '' COMMENT '姓名', `nick` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '昵称', PRIMARY KEY (`id`) ) ENGINE=InnoDBAUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='会员卡';
step2、插入生僻字(使用sqlyog模拟):
1、先模拟线上环境,设置下字符集:
2、插入生僻字(生僻字可以参考:http://www.qqxiuzi.cn/zh/hanzi-unicode-bianma.php?zfj=kzb&ks=24E20&js=257E3)
我们尝试插入王(在word里面按住alt,输入152964)。可以看到插入失败了。
step3、修改real_name的字符集:
use test; alter table t1 change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' ;
如果是线上大表的话,可以使用pt-osc来处理,命令如下:
pt-online-schema-change -uroot -h localhost --alter=" change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --dry-run
pt-online-schema-change -uroot -h localhost --alter=" change real_name real_name varchar(255) CHARACTER SET utf8mb4 DEFAULT '' COMMENT '姓名' " D=test, t=t1 --no-check-replication-filters --alter-foreign-keys-method=auto --recursion-method=none --quiet --charset=utf8mb4 --execute
step4、再次插入实验:
1、先设置下字符集:
2、再次插入,可以看到插入成功了。
在命令行里面查询也是没有乱码了:
到此就完成了,大家可以参考一下。
# MySQL
# 生僻字
# MySQL抛出Incorrect string value异常分析
# MySql 错误Incorrect string value for column
# Mysql中关于Incorrect string value的解决方案
# 可以看到
# 线上
# 是在
# 不支持
# 可以使用
# 报错
# 到此
# 命令行
# 应该是
# 机里
# 完成了
# 失败了
# SET
# CHARACTER
# COMMENT
# DEFAULT
# AUTO_INCREMENT
# NULL
# real_name
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何与Inertia.js和Vue/React构建现代单页应用
PHP正则匹配日期和时间(时间戳转换)的实例代码
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
Windows Hello人脸识别突然无法使用
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
如何快速生成高效建站系统源代码?
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
Linux系统命令中tree命令详解
Python正则表达式进阶教程_复杂匹配与分组替换解析
再谈Python中的字符串与字符编码(推荐)
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
lovemo网页版地址 lovemo官网手机登录
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
北京网站制作的公司有哪些,北京白云观官方网站?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
如何在腾讯云服务器上快速搭建个人网站?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
Laravel PHP版本要求一览_Laravel各版本环境要求对照
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
大型企业网站制作流程,做网站需要注册公司吗?
php 三元运算符实例详细介绍
深圳网站制作培训,深圳哪些招聘网站比较好?
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
简单实现Android文件上传
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
焦点电影公司作品,电影焦点结局是什么?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
利用vue写todolist单页应用
Laravel如何处理文件下载请求?(Response示例)
如何自定义建站之星网站的导航菜单样式?
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
javascript日期怎么处理_如何格式化输出
如何快速登录WAP自助建站平台?
如何用花生壳三步快速搭建专属网站?
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
三星、SK海力士获美批准:可向中国出口芯片制造设备
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
Laravel怎么连接多个数据库_Laravel多数据库连接配置
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】

