mysql 乱码 字符集latin1转UTF8


Posted in MySQL onApril 19, 2022

背景:目前正在进行业务重构,需要对使用MySQL的业务库表进行重新设计,在迁移时,遇到了中文字符乱码问题(源库表的默认编码是LATIN1,新库表的默认编码为UTF8),故重新学习了下MySQL编码和解码相关知识,并整理了在遭遇乱码时的一些常用技巧。

比如我下面一张表是省市区的编码存储,导入之后数据库变成如下的乱码: 

mysql 乱码 字符集latin1转UTF8

这个实际上是latin1字符编码。

如果我们直接查的话,那么需要转换一下:

select id,parent_code,area_code,CONVERT(CAST(CONVERT(name USING LATIN1) AS BINARY) USING UTF8) from cnarea_2020  where parent_code ='110000000000' or parent_code ='110101001000' 

 可以看到如下:

mysql 乱码 字符集latin1转UTF8

 已经转成tf8的编码了,已经正常了!

如果我们要使用查询的字段里面包含乱码,我们可以这样使用:

 select * from (select id,parent_code,area_code,CONVERT(CAST(CONVERT(name USING LATIN1) AS BINARY) USING UTF8) as name from cnarea_2020  where city_code ='010') as t where t.name like '%王府井%'

mysql 乱码 字符集latin1转UTF8

也就是先把查询的目标转成utf8,然后再进行查询.

当然了,以上是在迁移后,库中是乱码的情况下,进行操作的,那我们需要把编码转成utf8这样不用去改写代码,免去不必要的麻烦!

处理前的编码如下:

mysql 乱码 字符集latin1转UTF8

使用如下的操作:

 UPDATE cnarea_2020 SET 
    name=convert(cast(convert(name using  latin1) as binary) using utf8), 
    short_name=convert(cast(convert(short_name using  latin1) as binary) using utf8), 
    merger_name=convert(cast(convert(merger_name using  latin1) as binary) using utf8)
WHERE 1=1

mysql 乱码 字符集latin1转UTF8

 处理后的编码如下:

mysql 乱码 字符集latin1转UTF8

这个时候可以直接查询,不用进行转换了! 

mysql 乱码 字符集latin1转UTF8

 现在已经是正常的编码了,迁移就成功了,不用再去改代码来处理了!

到此这篇关于mysql 乱码字符 latin1 characters 转换为 UTF8详情的文章就介绍到这了!

MySQL 相关文章推荐
MySQL之高可用集群部署及故障切换实现
Apr 22 MySQL
MYSQL(电话号码,身份证)数据脱敏的实现
May 28 MySQL
详解MySQL中的pid与socket
Jun 15 MySQL
Mysql数据库值的添加、修改、删除及清空操作实例
Jun 20 MySQL
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
Aug 02 MySQL
MySQL的索引你了解吗
Mar 13 MySQL
MYSQL优化之数据表碎片整理详解
Apr 03 MySQL
Mysql排查分析慢sql之explain实战案例
Apr 19 MySQL
mysql 8.0.27 绿色解压版安装教程及配置方法
Apr 20 MySQL
pt-archiver 主键自增
Apr 26 MySQL
MySQL选择合适的备份策略和备份工具
Jun 01 MySQL
postgresql如何找到表中重复数据的行并删除
May 08 MySQL
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
Apr 18 #MySQL
为什么MySQL8新特性会修改自增主键属性
SQL语句多表联合查询的方法示例
Apr 18 #MySQL
Mysql 如何合理地统计一个数据库里的所有表的数据量
Apr 18 #MySQL
MySQL三种方式实现递归查询
Apr 18 #MySQL
Mysql 8.x 创建用户以及授予权限的操作记录
Golang连接并操作MySQL
Apr 14 #MySQL
You might like
MYSQL数据库初学者使用指南
2006/11/16 PHP
PHP 存储文本换行实现方法
2010/01/05 PHP
jQuery的链式调用浅析
2010/12/03 Javascript
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
JS弹出层的显示与隐藏示例代码
2013/12/27 Javascript
innerText 使用示例
2014/01/23 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
javascript计算渐变颜色的实例
2017/09/22 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
Vue组件的使用教程详解
2018/01/05 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
对mac下nodejs 更新到最新版本的最新方法(推荐)
2018/05/17 NodeJs
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
jquery实现聊天机器人
2020/02/08 jQuery
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
[01:30]我们共输赢 完美世界城市挑战赛开启全新赛季
2019/04/19 DOTA
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
Python 操作文件的基本方法总结
2017/08/10 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
利用Python实现Shp格式向GeoJSON的转换方法
2019/07/09 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
文明礼仪事迹材料
2014/01/09 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
效能风暴心得体会
2014/09/04 职场文书
预备党员2014年第四季度思想汇报范文
2014/10/25 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
民主生活会汇报材料
2014/12/15 职场文书
小班教师个人总结
2015/02/05 职场文书
《植物妈妈有办法》教学反思
2016/02/23 职场文书