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 相关文章推荐
.Net Core导入千万级数据至Mysql的步骤
May 24 MySQL
MYSQL数据库使用UTF-8中文编码乱码的解决办法
May 26 MySQL
MySQL query_cache_type 参数与使用详解
Jul 01 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 MySQL
一篇文章带你深入了解Mysql触发器
Aug 02 MySQL
mysql配置SSL证书登录的实现
Sep 04 MySQL
MySQL中的引号和反引号的区别与用法详解
Oct 24 MySQL
解决Mysql多行子查询的使用及空值问题
Jan 22 MySQL
以MySQL5.7为例了解一下执行计划
Apr 13 MySQL
MySQL数据库中的锁、解锁以及删除事务
May 06 MySQL
mysql数据库实现设置字段长度
Jun 10 MySQL
delete in子查询不走索引问题分析
Jul 07 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
JavaScript延迟加载
2021/03/09 Javascript
JavaScript Serializer序列化时间处理示例
2014/07/31 Javascript
javascript中的this详解
2014/12/08 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
2015/11/29 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
React Native中的RefreshContorl下拉刷新使用
2017/10/09 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
如何手写一个简易的 Vuex
2020/10/10 Javascript
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
python中的常量和变量代码详解
2018/07/25 Python
python障碍式期权定价公式
2019/07/19 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
2019/12/12 Python
Python爬取网页信息的示例
2020/09/24 Python
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
酒店执行总经理岗位职责
2013/12/15 职场文书
教师节商场活动方案
2014/02/13 职场文书
2016年百日安全生产活动总结
2016/04/06 职场文书
Python字典的基础操作
2021/11/01 Python
pandas进行数据输入和输出的方法详解
2022/03/23 Python
MySQL RC事务隔离的实现
2022/03/31 MySQL
Go获取两个时区的时间差
2022/04/20 Golang
SQL Server使用T-SQL语句批处理
2022/05/20 SQL Server