latin1字符集的数据转换为utf8字符集

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: latin1字符集的数据转换为utf8字符集

下面模拟把latin1字符集的数据转换为utf8字符集
一、创建测试表和测试数据:
1.修改会话级别的连接字符集
mysql > set names latin1;
查看一下:
\s
2.创建测试表:

mysql> create database test_latin1 charset latin1;
Query OK, 1 row affected (0.00 sec)

mysql> use test_latin1;
Database changed
mysql> create table test_latin1(test varchar(20)) charset latin1;;
Query OK, 0 rows affected (0.01 sec)

3.插入测试数据:

mysql> insert into test_latin1 values('啊'),('拨'),('吃');
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from test_latin1;
test

3 rows in set (0.00 sec)

4.另外打开一个终端,查询这个表,你会发现是乱码,因为默认字符集是utf8:

mysql> select * from test_latin1;
test
啊
拨
åƒ

3 rows in set (0.00 sec)

二、开始把已有数据进行字符集转换操作

  1. 导出表结构(-d表示只导出表结构,不导出数据):

shell > mysqldump --master-data=2 --single-transaction -R --trigger -u root -p'xxx --default-character-set=utf8 -d test_latin1 test_latin1 > test_latin1.sql

  1. 修改createdb.sql文件中所有的表结构定义中的lantin1为utf8
  2. 确保记录不再被更新,导出所有的记录(不导出建表语句,并按照原有字符集导出数据)

shell > mysqldump --master-data=2 --single-transaction -R --trigger -u root -p'xxx' --quick --no-create-info --extended-insert --default-character-set=latin1 test_latin1 test_latin1 > data.sql

  1. 修改data.sql文件,将set names latin1修改为set names utf8:
  2. 使用新的字符集utf8创建数据库

mysql > create database test_latin1 default charset utf8;

  1. 创建表

shell > mysql -u root -p ‘xx’ test_latin1 < test_latin1.sql

  1. 导入数据

shell > mysql -u root -p ‘x’ test_latin1 < data.sql
查询建库表结构:

mysql> show create database test_latin1;
Database Create Database
test_latin1 CREATE DATABASE test_latin1 /!40100 DEFAULT CHARACTER SET utf8 /

1 row in set (0.00 sec)

mysql> show create table test_latin1;
Table Create Table
test_latin1 CREATE TABLE test_latin1 (

test varchar(20) DEFAULT NULL

1 row in set (0.00 sec)

查询数据:

mysql> select * from test_latin1;
test

3 rows in set (0.00 sec)
注意:选择新的字符集的时候,要注意选择新的字符集最好要比原来的字符集更大,即包含原来的字符集字库,否则,可能出现新的字符集中丢失一部分数据,变成乱码,如:GBK字符集字库大于GB2312,如果把GBK改为GB2312,那么数据导入GB2312字符集的数据库中,就会丢失GB2312字符集不支持的那部分汉字数据。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
安全 Dubbo 算法
APK/ABB 包加固
APK/ABB 包加固
1085 0
|
9月前
|
存储 监控 druid
Druid、ClickHouse、Doris、StarRocks 的区别与分析
本文对比了 Druid、ClickHouse、Doris 和 StarRocks 四款大数据分析引擎。它们均为 OLAP 引擎,采用列式存储和分布式架构,适用于海量数据分析。Druid 擅长实时分析与高并发查询;ClickHouse 以超高性能著称,适合复杂查询;Doris 提供易用的 SQL 接口,性能均衡;StarRocks 则以其极速查询和实时更新能力脱颖而出。各引擎在数据模型、查询性能、数据更新和存储方面存在差异,适用于不同的业务场景。选择时需根据具体需求综合考虑。
4182 20
|
2月前
|
人工智能 自然语言处理 Serverless
Vibecoding 新体验:实测 Qwen3 Coder 代码生成效果
Qwen3 Coder 是一款强大的编程大语言模型,支持超长 1M 上下文,具备卓越的代码生成能力。结合 VibeCoding 方案,可助力开发者与企业快速构建复杂应用,实现自然语言生成系统,提升开发效率与生产力。
|
6月前
|
数据采集 分布式计算 监控
智能数据建设与治理 Dataphin:阿里云的一站式数据治理利器
阿里云Dataphin是一款企业级数据治理与智能建设平台,专注于解决数据孤岛、质量低下和开发效率低等问题。它提供从数据集成、规范建模、智能开发到质量监控及资产管理的全生命周期解决方案,特别适用于中大型企业构建数据中台或推进数字化转型。Dataphin通过自动化生成代码、内置质量规则模板和全局血缘追踪等功能,显著提升数据开发效率与跨团队协作能力。尽管学习曲线较陡峭且资源消耗较高,但其深度集成阿里云生态的优势,使其成为追求规范化数据治理企业的理想选择。推荐已采用阿里云技术栈并具备一定数据团队规模的企业使用。
407 1
|
存储 编解码 API
python多种方法压缩图片,opencv、PIL、tinypng、pngquant压缩图片
python多种方法压缩图片,opencv、PIL、tinypng、pngquant压缩图片
947 1
|
JavaScript 前端开发 安全
JS 混淆解析:JS 压缩混淆原理、OB 混淆特性、OB 混淆JS、混淆突破实战
JS 混淆解析:JS 压缩混淆原理、OB 混淆特性、OB 混淆JS、混淆突破实战
1037 2
|
运维 Java Devops
阿里云云效操作报错合集之在流水线增加单元测试报错,是什么导致的
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
存储 Kubernetes 调度
K8s Pod亲和性、污点、容忍度、生命周期与健康探测详解(上)
本文全面探讨了Kubernetes集群中Pod的四种关键机制——Pod亲和性、污点(Taints)、容忍度(Tolerations)、生命周期以及健康探测,为读者提供了深入理解并有效应用这些特性的指南。