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):
latin1
latin1
是 ISO 8859-1 的别名,支持西欧语言(如英语、法语、德语、西班牙语等)。- 它使用单字节编码,每个字符占用 1 个字节。
-
排序规则(Collation):
swedish_ci
swedish_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…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...

20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...

力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...