latin1_swedish_ci(latin1 不支持存储中文、日文、韩文等多字节字符)
文章目录
- 1、SHOW TABLE STATUS WHERE Name = 'batch_version';
- 2、latin1_swedish_ci
- 使用场景
- 注意事项
- 修改字符集和排序规则
- 修改表的字符集和排序规则
- 修改列的字符集和排序规则
- 修改数据库的默认字符集和排序规则
- 3、ALTER TABLE batch_version CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- 4、SHOW TABLE STATUS WHERE Name = 'batch_version';
- 5、两次查询结果的对比和区别
- 第一次查询结果(修改前)
- 第二次查询结果(修改后)
- 主要区别
- 为什么会有这种变化?
- 需要注意的事项
1、SHOW TABLE STATUS WHERE Name = ‘batch_version’;
mysql> SHOW TABLE STATUS WHERE Name = 'batch_version';
+---------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+---------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
| batch_version | MyISAM | 10 | Dynamic | 6 | 32 | 196 | 281474976710655 | 2048 | 0 | 7 | 2024-11-27 18:02:32 | 2025-01-10 15:39:03 | NULL | latin1_swedish_ci | NULL | | |
+---------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
1 row in set (0.00 sec)
2、latin1_swedish_ci
latin1_swedish_ci 是 MySQL 中的一种字符集和排序规则组合。具体含义如下:
-
字符集(Character Set):
latin1latin1是 ISO 8859-1 的别名,支持西欧语言(如英语、法语、德语、西班牙语等)。- 它使用单字节编码,每个字符占用 1 个字节。
-
排序规则(Collation):
swedish_ciswedish_ci表示基于瑞典语的排序规则,ci表示大小写不敏感(case-insensitive)。- 这种排序规则会将大小写字母视为相同(例如
A和a是等价的)。
使用场景
- 如果你的数据主要是西欧语言(如英语、法语等),并且不需要支持多字节字符(如中文、日文等),
latin1_swedish_ci是一个常见的选择。 - 它是 MySQL 的默认字符集和排序规则(在旧版本中)。
注意事项
-
不支持多字节字符:
latin1不支持存储中文、日文、韩文等多字节字符。如果需要存储这些字符,建议使用utf8mb4字符集。
-
排序规则的影响:
- 排序规则会影响字符串的比较和排序。例如,
swedish_ci会将A和a视为相同,而bin(二进制排序规则)则会区分大小写。
- 排序规则会影响字符串的比较和排序。例如,
-
迁移到 UTF-8:
- 如果你的应用需要支持多语言,建议将字符集迁移到
utf8mb4,并使用utf8mb4_unicode_ci或utf8mb4_general_ci排序规则。
- 如果你的应用需要支持多语言,建议将字符集迁移到
修改字符集和排序规则
如果需要将表或列的字符集和排序规则修改为 latin1_swedish_ci,可以使用以下 SQL 语句:
修改表的字符集和排序规则
ALTER TABLE 表名
CONVERT TO CHARACTER SET latin1 COLLATE latin1_swedish_ci;
修改列的字符集和排序规则
ALTER TABLE 表名
MODIFY 列名 列类型 CHARACTER SET latin1 COLLATE latin1_swedish_ci;
修改数据库的默认字符集和排序规则
ALTER DATABASE 数据库名
CHARACTER SET = latin1 COLLATE = latin1_swedish_ci;
如果你有更多问题,欢迎随时提问!
3、ALTER TABLE batch_version CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
4、SHOW TABLE STATUS WHERE Name = ‘batch_version’;
mysql> SHOW TABLE STATUS WHERE Name = 'batch_version';
+---------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+---------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
| batch_version | MyISAM | 10 | Dynamic | 6 | 32 | 196 | 281474976710655 | 2048 | 0 | 7 | 2025-01-17 14:17:25 | 2025-01-10 15:39:03 | NULL | utf8mb4_general_ci | NULL | | |
+---------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+--------------------+----------+----------------+---------+
1 row in set (0.01 sec)
5、两次查询结果的对比和区别
从你提供的两次 SHOW TABLE STATUS 查询结果可以看出,batch_version 表的字符集和排序规则发生了变化。以下是两次查询结果的对比和区别:
第一次查询结果(修改前)
Collation: latin1_swedish_ci
- 字符集:
latin1 - 排序规则:
latin1_swedish_ci - 说明:
- 表使用的是
latin1字符集,支持单字节编码(适用于西欧语言)。 - 排序规则是
swedish_ci,表示大小写不敏感(case-insensitive),基于瑞典语的排序规则。
- 表使用的是
第二次查询结果(修改后)
Collation: utf8mb4_general_ci
- 字符集:
utf8mb4 - 排序规则:
utf8mb4_general_ci - 说明:
- 表使用的是
utf8mb4字符集,支持多字节编码(适用于全球所有语言,包括中文、日文、韩文等)。 - 排序规则是
general_ci,表示大小写不敏感(case-insensitive),基于 Unicode 的通用排序规则。
- 表使用的是
主要区别
-
字符集不同:
latin1仅支持单字节编码,适用于西欧语言。utf8mb4支持多字节编码,适用于全球所有语言。
-
排序规则不同:
latin1_swedish_ci是基于瑞典语的排序规则,仅适用于latin1字符集。utf8mb4_general_ci是基于 Unicode 的通用排序规则,适用于utf8mb4字符集。
-
兼容性:
latin1无法存储多字节字符(如中文、日文等),而utf8mb4可以。- 如果你的数据中包含非西欧字符(如中文),使用
latin1会导致乱码或数据丢失,而utf8mb4可以完美支持。
-
存储空间:
latin1每个字符占用 1 个字节。utf8mb4每个字符可能占用 1 到 4 个字节(取决于字符)。
-
排序和比较行为:
latin1_swedish_ci和utf8mb4_general_ci都是大小写不敏感的,但它们的排序规则基于不同的语言和字符集,因此在某些情况下排序结果可能不同。
为什么会有这种变化?
- 可能是你或其他人执行了修改表字符集和排序规则的操作,例如:
ALTER TABLE batch_version CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - 这种修改通常是为了支持多语言字符(如中文)或统一字符集。
需要注意的事项
-
数据兼容性:
- 如果表中原本存储了
latin1编码的数据,修改为utf8mb4后,可能需要确保数据正确转换,避免乱码。
- 如果表中原本存储了
-
索引和排序:
- 修改字符集和排序规则可能会影响索引和排序行为,建议在修改后测试相关功能。
-
应用程序兼容性:
- 确保应用程序能够正确处理
utf8mb4字符集。
- 确保应用程序能够正确处理

相关文章:
latin1_swedish_ci(latin1 不支持存储中文、日文、韩文等多字节字符)
文章目录 1、SHOW TABLE STATUS WHERE Name batch_version;2、latin1_swedish_ci使用场景注意事项修改字符集和排序规则修改表的字符集和排序规则修改列的字符集和排序规则修改数据库的默认字符集和排序规则 3、ALTER TABLE batch_version CONVERT TO CHARACTER SET utf8mb4 C…...
C语言编程笔记:文件处理的艺术
大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文一、为什么要用文件二、文件的分…...
[创业之路-255]:《华为数字化转型之道》-1-主要章节、核心内容、核心思想
目录 前言:数字化转型对于企业而言,是一种全方位的变革 一、主要章节 1、认知篇(第1~2章)- Why 2、方法篇(第3~5章)- How 3、实践篇(第6~10章)- 实践 4、平台篇(第…...
《汽车维修技师》是什么级别的期刊?是正规期刊吗?能评职称吗?
问题解答: 问:《汽车维修技师》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《汽车维修技师》级别? 答:省级。主管单位:北方联合出版传媒(…...
2024 京东零售技术年度总结
每一次回望,都为了更好地前行。 2024 年,京东零售技术在全面助力业务发展的同时,在大模型应用、智能供应链、端技术、XR 体验等多个方向深入探索。京东 APP 完成阶段性重要改版,打造“又好又便宜”的优质体验;国补专区…...
PyTorch使用教程(8)-一文了解torchvision
一、什么是torchvision torchvision提供了丰富的功能,主要包括数据集、模型、转换工具和实用方法四大模块。数据集模块内置了多种广泛使用的图像和视频数据集,如ImageNet、CIFAR-10、MNIST等,方便开发者进行训练和评估。模型模块封装了大量经…...
如何在不暴露MinIO地址的情况下,用Spring Boot与KKFileView实现文件预览
在现代Web应用中,文件预览是一项常见且重要的功能。它允许用户在不上传或下载文件的情况下,直接在浏览器中查看文件内容。然而,直接将文件存储服务(如MinIO)暴露给前端可能会带来安全风险。本文将介绍如何在不暴露MinI…...
ICMP协议和ICMP重定向攻击
✍作者:柒烨带你飞 💪格言:生活的情况越艰难,我越感到自己更坚强;我这个人走得很慢,但我从不后退。 📜系列专栏:网络安全从菜鸟到飞鸟的逆袭 目录 一,ICMP基本概念二&…...
leetcode203-移除链表元素
leetcode203 什么是链表 之前不懂链表的数据结构,一看到链表的题目就看不明白 链表是通过next指针来将每个节点连接起来的,题目中给的链表是单向链表,有两个值,一个val表示值,一个next:表示连接的下一个…...
Rust 中构建 RESTful API
在 Rust 中构建 RESTful API,你可以选择几个不同的框架。每个框架有不同的特点、优缺点和适用场景,下面我将介绍几个常用的 Rust Web 框架,并分析它们的优缺点。 Actix Web 简介: Actix Web 是一个非常高性能的 Web 框架…...
Sqlmap入门
原理 在owasp发布的top10 漏洞里面,注入漏洞一直是危害排名第一,其中数据库注入漏洞是危害的。 当攻击者发送的sql语句被sql解释器执行,通过执行这些恶意语句欺骗数据库执行,导致数据库信息泄漏 分类 按注入类型 常见的sql注入…...
迈向 “全能管家” 之路:机器人距离终极蜕变还需几步?
【图片来源于网络,侵删】 这是2024年初Figure公司展示的人形机器人Figure 01,他可以通过观看人类的示范视频,在10小时内经过训练学会煮咖啡,并且这个过程是完全自主没有人为干涉的! 【图片来源于网络,侵删】…...
移动端 REM 适配
移动端 REM 适配 Vant 中的样式默认使用 px 作为单位,如果需要使用 rem 单位,推荐使用以下两个工具: postcss-pxtorem 是一款 postcss 插件,用于将单位转化为 remlib-flexible 用于设置 rem 基准值 下面我们分别将这两个工具配…...
逐笔成交逐笔委托Level2高频数据下载和分析:20241230
逐笔委托逐笔成交下载 链接: https://pan.baidu.com/s/11Tdq06bbYX4ID9dEaiv_lQ?pwdcge6 提取码: cge6 Level2逐笔成交逐笔委托数据分享下载 利用Level2的逐笔交易和委托数据,这种以毫秒为单位的详细信息能揭露众多关键信息,如庄家意图、伪装行为&…...
C#实现字符串反转的4种方法
见过不少人、经过不少事、也吃过不少苦,感悟世事无常、人心多变,靠着回忆将往事串珠成链,聊聊感情、谈谈发展,我慢慢写、你一点一点看...... 1、string.Reverse 方法 string content "Hello World";string reverseStri…...
UDP 单播、多播、广播:原理、实践
一、引言 在计算机网络通信领域,UDP(User Datagram Protocol,用户数据报协议)是一种重要的传输层协议。它以无连接、低开销的特点,在众多实时性要求高的应用场景中发挥关键作用。UDP 支持单播、多播和广播三种通信模式…...
深入浅出:Go语言中的bytes包与字节串操作详解
标题:深入浅出:Go语言中的bytes包与字节串操作详解 引言 在Go语言的世界里,bytes包是一个非常重要的标准库,它为开发者提供了高效处理字节切片(byte slice)的功能。无论是处理二进制数据、UTF-8编码的字符串,还是进行高效的数据读写操作,bytes包都扮演着不可或缺的角色…...
数据库存储上下标符号,sqlserver 2008r2,dm8
sqlserver 2008r2: 数据类型需要用nvarchar插入数据时字符串前需要用N create table test( col1 varchar(50), col2 nvarchar(50) ) insert into test(col1,col2) values(U⁴⁵⁶⁷⁸⁹⁰D₁₂₃₄₅₆₇₈₉₀,U⁴⁵⁶⁷⁸⁹⁰D₁₂₃₄₅₆₇₈₉₀) insert into…...
LabVIEW串口通信调试与数据接收问题
在使用LabVIEW进行串口通信时,常常会遇到无法接收数据的情况。这可能与串口设置、连接、设备响应等多方面因素相关。本文将详细讨论如何使用LabVIEW进行串口通信,并提供常见问题的排查与解决方法,帮助用户更高效地进行数据接收调试。通过调整…...
oneplus3t-lineage-14编译-android7
lineageOS-14(android7)的开发者模式/usb调试(adb)有root功能, 而lineageOS-16(android9)无 oneplus3t-lineage-14编译-android7 1 清华linageos镜像 x lineage-14.1-20180223-nightly-oneplus3-signed.zip ntfs分区挂载为普通用户目录 , ext4分区挂载为普通用户目录 bfs…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
高防服务器价格高原因分析
高防服务器的价格较高,主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因: 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器,因此…...
