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)。
    • 这种排序规则会将大小写字母视为相同(例如 Aa 是等价的)。

使用场景

  • 如果你的数据主要是西欧语言(如英语、法语等),并且不需要支持多字节字符(如中文、日文等),latin1_swedish_ci 是一个常见的选择。
  • 它是 MySQL 的默认字符集和排序规则(在旧版本中)。

注意事项

  1. 不支持多字节字符

    • latin1 不支持存储中文、日文、韩文等多字节字符。如果需要存储这些字符,建议使用 utf8mb4 字符集。
  2. 排序规则的影响

    • 排序规则会影响字符串的比较和排序。例如,swedish_ci 会将 Aa 视为相同,而 bin(二进制排序规则)则会区分大小写。
  3. 迁移到 UTF-8

    • 如果你的应用需要支持多语言,建议将字符集迁移到 utf8mb4,并使用 utf8mb4_unicode_ciutf8mb4_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 的通用排序规则。

主要区别

  1. 字符集不同

    • latin1 仅支持单字节编码,适用于西欧语言。
    • utf8mb4 支持多字节编码,适用于全球所有语言。
  2. 排序规则不同

    • latin1_swedish_ci 是基于瑞典语的排序规则,仅适用于 latin1 字符集。
    • utf8mb4_general_ci 是基于 Unicode 的通用排序规则,适用于 utf8mb4 字符集。
  3. 兼容性

    • latin1 无法存储多字节字符(如中文、日文等),而 utf8mb4 可以。
    • 如果你的数据中包含非西欧字符(如中文),使用 latin1 会导致乱码或数据丢失,而 utf8mb4 可以完美支持。
  4. 存储空间

    • latin1 每个字符占用 1 个字节。
    • utf8mb4 每个字符可能占用 1 到 4 个字节(取决于字符)。
  5. 排序和比较行为

    • latin1_swedish_ciutf8mb4_general_ci 都是大小写不敏感的,但它们的排序规则基于不同的语言和字符集,因此在某些情况下排序结果可能不同。

为什么会有这种变化?

  • 可能是你或其他人执行了修改表字符集和排序规则的操作,例如:
    ALTER TABLE batch_version 
    CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    
  • 这种修改通常是为了支持多语言字符(如中文)或统一字符集。

需要注意的事项

  1. 数据兼容性

    • 如果表中原本存储了 latin1 编码的数据,修改为 utf8mb4 后,可能需要确保数据正确转换,避免乱码。
  2. 索引和排序

    • 修改字符集和排序规则可能会影响索引和排序行为,建议在修改后测试相关功能。
  3. 应用程序兼容性

    • 确保应用程序能够正确处理 utf8mb4 字符集。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/5520.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用vue-next-admin框架后台修改动态路由

vue-next-admin框架是一个基于 Vue 3 和 Vite 构建的后台管理系统框架。它采用了最新的前端技术栈,旨在提供一个高效、灵活、现代化的管理后台解决方案。该框架主要用于构建功能丰富且易于定制的管理后台应用,适合各种中大型项目。 其主要特点包括&am…

qiankun+vite+vue3

基座与子应用代码示例 本示例中,基座为Vue3,子应用也是Vue3,由于qiankun不支持Vite构建的项目,这里还要引入 vite-plugin-qiankun 插件 基座(主应用) 加载qiankun依赖 npm i qiankun -S qiankun配置(src/qiankun) src/qiankun/config.ts export default {subApp…

深度学习中Batch Normalization(BN)原理、作用浅析

最近做剪枝学习,其中一种是基于BN层的γ作为缩放因子进行剪枝的,那么我想搞懂BN的工作原理更好的理解网络、剪枝等,所以有了该文。 首先先说BN的作用在详细拆解,理解。以知乎一条高赞评论说明BN层到底在干什么。 Batch Norm 为什…

Python----Python高级(正则表达式:语法规则,re库)

一、正则表达式 1.1、概念 正则表达式,又称规则表达式,(Regular Expression,在代码中常简写为regex、 regexp或RE),是一种文本模式,包括普通字符(例如,a 到 z 之间的字母&#xff0…

【16届蓝桥杯寒假刷题营】第1期DAY5

5.依依的询问最小值 - 蓝桥云课 问题描述 依依有个长度为 n 的序列 a,下标从 1 开始。 她有 m 次查询操作,每次她会查询下标区间在 [li​,ri​] 的 a 中元素和。她想知道你可以重新排序序列 a,使得这 m 次查询的总和最小。 求你求出 m 次…

机器学习10-解读CNN代码Pytorch版

机器学习10-解读CNN代码Pytorch版 我个人是Java程序员,关于Python代码的使用过程中的相关代码事项,在此进行记录 文章目录 机器学习10-解读CNN代码Pytorch版1-核心逻辑脉络2-参考网址3-解读CNN代码Pytorch版本1-MNIST数据集读取2-CNN网络的定义1-无注释版…

【机器学习实战中阶】使用SARIMAX,ARIMA预测比特币价格,时间序列预测

数据集说明 比特币价格预测(轻量级CSV)关于数据集 致谢 这些数据来自CoinMarketCap,并且可以免费使用该数据。 https://coinmarketcap.com/ 数据集:链接: 价格预测器 源代码与数据集 算法说明 SARIMAX(Seasonal AutoRegressive …

将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(1.标准版)

问题 项目里使用了 AzureBlob 存储了用户上传的各种资源文件,近期 AzureBlob 的流量费用增长很快,想通过分析Blob的日志,获取一些可用的信息,所以有了这个需求:将存储账户的日志(读写,审计&…

【Red Hat8】:搭建FTP服务器

目录 一、匿名FTP访问 1、新建挂载文件 2、挂载 3、关闭防火墙 4、搭建yum源 5、安装VSFTPD 6、 打开配置文件 7、设置配置文件如下几个参数 8、重启vsftpd服务 9、进入图形化界面配置网络 10、查看IP地址 11、安装ftp服务 12、遇到拒绝连接 13、测试 二、本地…

Redis的Windows版本安装以及可视化工具

文章目录 redis安装redis安装包下载解压文件夹启动redis服务Redis路径配置环境变量打开redis客户端进行连接基础操作测试 redis可视化工具下载Redis Desktop Manager redis安装 redis安装包下载 windows版本readis下载:Releases tporadowski/redis 解压文件夹 我…

汽车钥匙发展史

介绍 最近在研究UWB数字钥匙的过程中,了解到汽车钥匙在短短的100多年以来的发展历程,让我不禁感慨科技的发展速度,本文主要介绍汽车发展过程中,车钥匙形态变化的历程及技术原理。 总体概述,汽车钥匙的发展&#xff0…

react install

react 安装 React 是一个用于构建用户界面的 JavaScript 库。以下是安装 React 的步骤: 使用 Create React App Create React App 是一个官方支持的命令行工具,用于快速搭建 React 应用。 安装 Node.js 和 npm 确保你的计算机上安装了 Node.js 和 npm…

Ubuntu如何安装redis服务?

环境: Ubuntu22.04 WSL2 问题描述: 如何安装redis服务? 解决方案: 1.在 Linux 上(如 Ubuntu/Debian)安装 1.通过包管理工具安装 Redis 服务器: sudo apt update sudo apt install redis…

element el-table合并单元格

合并 表格el-table添加方法:span-method"” <el-table v-loading"listLoading" :data"SHlist" ref"tableList" element-loading-text"Loading" border fit highlight-current-row :header-cell-style"headClass" …

【BUUCTF】[GXYCTF2019]BabySQli

进入页面如下 尝试万能密码注入 显示这个&#xff08;qyq&#xff09; 用burp suite抓包试试 发现注释处是某种编码像是base编码格式 MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5 可以使用下面这个网页在线工具很方便…

R语言基础| 回归分析

写在前面 R语言拥有丰富的数据处理、统计分析和机器学习工具包&#xff0c;涵盖了从简单的描述统计到复杂的模型建立的各个方面。再加上数据的处理可以完美的衔接后续的可视化&#xff0c;这使得它成为处理各种类型和规模的数据集的理想选择。回归分析是统计学中一种用于探究自…

高并发内存池_CentralCache(中心缓存)和PageCache(页缓存)申请内存的设计

三、CentralCache&#xff08;中心缓存&#xff09;_内存设计 &#xff08;一&#xff09;Span的创建 // 页编号类型&#xff0c;32位下是4byte类型&#xff0c;64位下是8byte类型 // #ifdef _WIN64 typedef unsigned long long PageID; #else _WIN32 typedef size_t PageI…

【云网】云网络基础概念(华为云)

云网络基础概念&#xff08;华为云&#xff09; 一、虚拟网络 1、VPC概念 华为云提供的虚拟网络环境的基础单元是虚拟私有云&#xff08;Virtual Private Cloud&#xff09;。 VPC和传统的物理三层网络类似,也包括路由器、子网、子网网关、IP地址等传统概念。 典型组网逻辑…

WPF2-在xaml为对象的属性赋值

1. AttributeValue方式 1.1. 简单属性赋值1.2. 对象属性赋值 2. 属性标签的方式给属性赋值3. 标签扩展 (Markup Extensions) 3.1. StaticResource3.2. Binding 3.2.1. 普通 Binding3.2.2. ElementName Binding3.2.3. RelativeSource Binding3.2.4. StaticResource Binding (带参…

【经验分享】ARM Linux-RT内核实时系统性能评估工具

【经验分享】ARM Linux-RT内核实时系统性能评估工具 前言下载和编译方法常用工具介绍总结 前言 最近在研究Linux-RT实时系统&#xff0c;介绍下常用的实时系统的性能评估工具。 下载和编译方法 用git下载 git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.…