MySQL插入生僻字失败的处理方法(图)
技术百科
黄舟
发布时间:2017-05-14
浏览: 次 最近,业务方反馈有个别用户信息插入失败,报错提示类似incorrect string value:"\xf0\xa5 .....看这个提示应该是字符集不支持某个生僻字造成的,需要的朋友可以参考下
最近,业务方反馈有个别用户信息插入失败,报错提示类似"
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、插入生僻字(生僻字可以参考: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
# 应该是
# 生僻字
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- mac怎么右键_MAC鼠标右键设置与触控板手势技巧
- 如何在 VS Code 中正确配置并使用 NumP
- Windows 11登录时提示“用户配置文件服务登
- c++中的std::conjunction和std
- php下载安装包怎么选_threadsafe与nt
- Windows蓝屏BAD_POOL_HEADER故
- Ajax提交表单PHP怎么接收_处理Ajax发送的
- Windows如何查看和管理已安装的字体?(字体文
- php485返回数据不完整怎么办_php485数据
- 如何在Windows上设置闹钟和计时器_系统自带的
- Win10如何卸载WindowsDefender_
- Windows蓝屏错误0x00000023怎么修复
- Windows10系统怎么查看CPU核心数_Win
- c++的位运算怎么用 与、或、异或、移位操作详解【
- Win11怎么设置虚拟内存最佳大小_Windows
- Win11怎么设置组合键快捷方式_Windows1
- Windows系统被恶意软件破坏后的恢复策略_错误
- Python与Docker容器化部署实战_镜像构建
- php订单日志怎么记录评价_php记录订单评价日志
- Win11如何设置系统声音_Win11系统声音调整
- Python实现图数据库操作_Neo4j核心CRU
- Windows10怎么卸载预装软件_Windows
- Win11怎么设置多显示器任务栏 Win11扩展任
- c++怎么处理多线程死锁_c++ lock_gua
- Windows10如何更改系统字体大小_Win10
- Windows怎样关闭开始菜单推荐广告_Windo
- 如何在Golang中引入测试模块_Golang测试
- Python 模块的 __name__ 属性如何由
- php485在php5.6下能用吗_php485旧
- 如何高效删除 NumPy 二维数组中所有元素相同的
- Win11怎么关闭任务栏小图标_Windows11
- LINUX怎么设置系统语言_LINUX修改中文环境
- Win11怎么设置虚拟键盘_打开Win11屏幕键盘
- MAC怎么用连续互通相机里的“桌上视角”_MAC在
- Windows10如何彻底关闭自动更新_Win10
- 本地php环境出现502错误_nginx或apac
- PythonGIL机制理解_多线程限制解析【教程】
- Win11如何关闭游戏模式 Win11禁用Xbox
- Win10如何更改用户账户控制_Windows10
- phpstudy本地环境mysql忘记密码_重置m
- 如何在Golang中处理JSON字段缺失_Gola
- Win11怎么把图标拖到任务栏_Win11固定应用
- XML的“混合内容”是什么 怎么用DTD或XSD定
- Win11色盲模式怎么开_Win11屏幕颜色滤镜设
- Win10任务栏天气和资讯怎么关闭 Win10禁用
- 如何使用Golang实现错误包装与传递_Golan
- PythonDocker高级项目部署教程_多容器管
- php转exe用什么工具打包快_高效打包软件推荐【
- Mac怎么开启“任何来源”_Mac安装未签名应用的
- Win11怎么连接蓝牙耳机_Win11蓝牙设备配对

QQ客服