MySQL5.7 — Character Set、Unicode

MySQL 5.7升级必看:为什么你的中文数据应该改用utf8mb4_unicode_520_ci? 本文详细解析了MySQL 5.7升级中utf8mb4_unicode_520_ci排序规则的优势,特别针对中文数据处理提供了全面的技术指南。相比传统的utf8mb4_general_ci,utf8mb4_unicode_520_ci提供更准确的中文排序、全面的多语言支持和优化的性能表现,是现代多语言应用的理想选择。文章还提供了从数据库到表级的实战迁移方案和验证方法。 阅读详情

转自:MySQL5.7 — Character Set、Unicode - 知乎

版本:MySQL5.7

操作系统:Win10

一、字库、字符集、编码、XX码

在冯诺依曼结构体系中,信息都以二进制的方式在计算机中存储。信息是指令还是数据取决于CPU是如何读取的。当CPU通过代码段寄存器和指令指针寄存器寻址时(CS:IP),取出的信息就被认为是指令,当CPU通过数据段寄存器和内存单元相对地址进行寻址时(DS:[xxxx]),取出的信息就被认为是常规数据。

如同DS与CS决定了二进制信息是代码还是数据一样,我们也需要一些方式来对数据赋予不同的意义,比如这些数据表示的是字符还是数字。

假如我们有一些不相同的字符,这些字符的集合就被叫做字库表,如果赋予字库表中每一个字符一个代号,则字库表中所有的字符和代号就组成了字符集,而将字符集中的字符的代号翻译成计算机能够存储的二进制数据的操作就叫做编码,编码的二进制结果就叫做xx码。

在上世纪,美国佬发明了一种名为ASCII的编码,在ASCII的字符集中,一共有128个不相同的字符,其中每个字符都有一个0-127之间的十进制数字作为代号。

而ASCII码就是ASCII字符代号的二进制表示。由于计算机的存储单元为byte,字节。一个字节分为8bit,位。即1字节能表示2^8 = 256个不同的状态,所以存储一个ASCII码到计算机上只需要使用一个字节。比如在ASCII字符集中,空格字符的代号为32,则其ASCII码为:

32 ->  0001 1010

但是随着计算机的普及,要表示的信息越来越多,比如需要表示其他语言的符号等。此时可以考虑扩展ACSII的字库和字符集。但由于ASCII码只用一个字节来存储,也最多只能表示256个不同的字符,除去原来的已经存在的128个,也只能扩展128个字符而已,可是单单汉字就有最起码几万个,所以使用一个字节来存储字符的编码信息已经遇到瓶颈了。

为了满足实际需求,必须考虑用多个字节来存储字符的编码信息。但是在计算机发展的过程中,出现了一个比较头疼的问题:

  • 由于语言、文化等差异,产生了许多不同的字库和字符集

而Unicode字符集的出现就是为了解决这个问题,Unicode的字库中收录了世界上所有出现过的计算机字符,可以说Unicode字符集是世界上最大最全的字符集。

我们可以在Unicode官网上看到所有Unicode字符集所收录的字符

Index​www.unicode.org/

Unicode字库一直在被补充,现在被分为17个不同的区间,可以看做一个数据表中的17行。而每行中又可以看做具有65535列,具体的x行x列就对应着字符集中的一个字符,通常列的坐标被我们称为码点,即一行中有65535个码点。

ASCII字符集中,简单粗暴的使用一个0-128范围的数字作为字符的代号。Unicdoe字符代号是由字符所属的平面以及码点来确定的。先来看几个Unicode字符代号长什么样子:

如上图中所看到的,其格式为

U+{平面号}{码点} 平面号为1字节的16进制数 码点为2字节的16进制数

当平面号有前导0时可以省去不在字符代号中显式的写出,比如上图中用红色框标注的U+1F535写全应该为U+01F535、U+26A2写全应该为U+0026A2。U+1F91A就表示这个字符的平面号为1,码点为63770(F91A)

字符在字符集中的代号是给人看的,字符存储到计算机上最终还是二进制数据,即需要对代号进行编码。ASCII的编码方式就是直接将字符代号对应的十进制数字转换成二进制数字,首先我们来思考一下,对于Unicode字符的代号,采用和ASCII一样的编码方式是否可行?例如U+1F535这个字符直接用固定的三个字节来存储,即01 F5 35。

首先答案是当然可行,但是这样会带来一些问题。Unicode字库作为世界上最大的字库,其肯定包含了ASCII字库中的所有字符,原本只需要1个字节就能存储的ASCII码,如果采用上面所说的编码方案,就需要3个字节来存储,无疑会浪费大量的计算机资源。

由于牛逼的程序员们都有强迫症,所以针对Unicode字符集,没有采用类似于ASCII码类似的固定长度的编码方式,而是推出了可变长度的编码方式,也就是我们所熟悉的utf-8、utf-16等编码方式。即一个字符集下可能有多种编码方式。

先来看想utf-8是如何进行可变长度的编码的,如下所示是utf-8编码表示Unicode字符集中所有的字符的方式

Unicode符号范围 (十六进制) | UTF-8编码方式 (二进制)
-------------------------------------------------------------------
00 00 00 - 00 00 7F  | 0xxxxxxx
00 00 80 - 00 07 FF  | 110xxxxx 10xxxxxx
00 08 00 - 00 FF FF  | 1110xxxx 10xxxxxx 10xxxxxx
01 00 00 - 10 FF FF  | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

从上图可以看到位于第0平面,且码点范围为[00, 7F]的字符只需要一个字节来表示,而这些字符恰好就对应着ASCII字符集中的128个字符。

uft-8的编码规则为:

  • 对于单字节的编码,字节的第一位设为0,后面7位用来表示字符的 Unicode 代号。因此对于ASCII字符集中的字符,其ASCII码和utf-8编码相同
  • 对于n字节的编码(n > 1),第一个字节的前n位都设为1,第n + 1位设为0,后面字节的前两位一律设为10。剩下的所有二进制位,用来表示这个符号的 Unicode代号 。

从utf-8编码规则来看,其最多为4个字节,也就是说utf-8最多能存储长度为6 * 3 + 3 = 21bit的数据。Unicode字符集只有17个平面,所以只需要5bit就可以表示其所有的平面,而剩下的最大码点值为65535,仅需要16bit进行表示,5 + 16 = 21bit,这也说明utf-8编码刚好能编码Unicode字符集中的所有字符,同时也达到了可变长度的目的,节省了计算机资源。

二、MySQL中的Character Set

1、基本概念

在前面一节中我们了解了字符集和编码的基本概念,同时也知道了Unicode通常指的是世界上最大的字符集。

Character Set是MySQL中的关键字,如果直接翻译过来的话就是字符集。

我们可以使用

show character set

命令来查看MySQL所支持的所有character set:

第一栏的Charset是MySQL中Character Set的名字,Description这一栏表明了其所使用的编码方式和字符集。比如上图中的utf8这个Character Set,在MySQL中表示所使用的编码方式为UTF-8,使用的字符集为Unicode,并且限制了最大长度为3字节。不过这里我们可能会产生疑问,在上一节中我们已经得知,UTF-8编码作为一个可变长度的编码,最长应该是4字节,为什么这里要限制为3呢?其实这是由于历史原因,在mysql支持UTF-8编码时,Unicode还没有平面一说,3个字节也就是说:

其最长的有效位只有6 + 6 + 4 = 16bit,即两个字节,刚好只能表示Unicode字符集一个平面的65535个码点值,而没有多余的位置去表示具体表示哪个平面,所以默认也就是第0平面,至于现在所说的17个平面是后来才产生的概念。如果有特别的需求,需要用到Unicode字符集中的所有字符,我们可以切换成utf8mb4 Character Set,其完全向下兼容utf8 Character Set,并且最大长度为4字节,这个也是目前真正意义上的UTF-8编码。

2、MySQL中字符集的设置 — server级

MySQL中有许多关于字符集的设置,可以通过

show variables like '%char%'

来查看server级的字符集设置,如下图所示

character_set_client:

我们使用的命令行工具或者MySQL Workbench都属于客户端,与MySQL服务器通过tcp进行通信,端口为3306:

我们在命令行中敲入的命令,被当做一个字符串,根据CMD命令行工具的字符集设置转化为二进制数据通过tcp发送给MySQL服务器,然后MySQL服务器经过一系列的解析,优化等处理将字符串转化为自己可以执行的语法树。我们都知道tcp发送的是二进制数据,MySQL需要将接受到的二进制数据根据该参数设置的字符集进行解码。

测试方法如下,首先将该参数设置为ASCII码

向MySQL服务器发送一个建表语句,包含一个中文备注:

接下来查看MySQL最终执行的建表语句:

可以看到由于字符集设置的问题,导致中文乱码。所以我们应该让该参数值和我们所使用的MySQL客户端的字符集保持一致,我使用的MySQL客户端是CMD命令行工具:

可以在标题栏右键选择属性

查看当前CMD命令行所使用的编码方式

如上图所示,我的CMD客户端的字符集为GBK,所以也要将MySQL服务器的该参数设置为GBK才能正常工作。

character_set_connection:

正确的设置character_set_client能让我们在客户端输入的sql命令被MySQL服务器正确的拿到。MySQL服务器拿到sql语句之后开始解析构建语法树,如果在解析时发现有字符串常量的存在,则需要需要使用character_set_connection所设置的character_set进行编码,作为临时数据保存在内存中。我们可以很容易的通过字符串的字节长度来进行验证:

当character_set_connection设置为gbk字符集时,一个汉字应该占用2个字节:

当character_set_connection设置为utf8字符集时,一个汉字应该占用3个字节:

character_set_results:

当MySQL需要返回给客户端数据时,比如返回查询结果,会根据character_set_results的设置进行转码,然后后再发送给MySQL客户端。还是以CMD命令行客户端为例,客户端字符集默认为gbk,character_set_results默认设置也是gbk,MySQL服务器在返回数据前会进行一个utf8字符串到gbk字符串的转码,所以我们的查询结果可以正常显示。

正常情况下,我们直接select一个字符串常量不会有任何问题:

但是如果我们将该参数设置为utf8,可以看到由于CMD命令行环境中的字符集为gbk,所以汉字会乱码:

character_set_system:

上面的三个设置都是对数据起作用的,而character_set_system作用的目标为数据库的元数据。MySQL认为表示数据库的基本信息,但是又不属于数据库的数据内容的数据,就叫做元数据,比如数据库名,表明,列名信息等,你可以简单理解为数据库的结构层面的信息。对应到具体的实体来说就是使用show命令查看的内容或者是使用select命令从INFORMATION_SCHEMA数据库中查询的内容,比如说字符集:

show命令查看所有的字符集:

从INFORMATION_SCHEMA数据库的对应表中查看字符集:

系统字符集设置中的character_set_system选项,就是存储数据库元数据的字符集,默认为utf8:

而且该选项是只读的,我们没有 办法进行设置 :

我们通过创建一个含有中文列名的表进行测试:

INFORMATION_SCHEMA.COLUMNS表中记录了mysql数据库中所有的列的元数据,可以看到具有列名这个列:

由于存储元数据的字符集是utf8,所以通过length函数,我们可以看到列名 '列' 占用的字节数为3,

character_set_server:

首先让我们来了解一些基本知识,整个MySQL的结构为:MySQL服务器 -> database -> tables -> column -> row,其中前四个为数据库的元数据,最后一个为数据库的内容。无论是数据库的元数据还是数据库的内容都需要持久化到磁盘上。元数据的在存储时使用的字符集是统一的,通过character_set_system变量进行控制。而数据库的内容在存储时,所采用的字符集主要是由其column的字符集决定的,我们可以在建表时指定列的字符集,如下图所示:

但在建表时,为列单独设置字符集这一操作是可选的,也就是说我们可以不为列单独设置,还是以这个刚创建的表为例:

可以看到数据表有一个默认的字符集utf8,即如果我们不为列单独设置字符集,则默认继承其所在表的字符集,这很容易进行测试,首先来添加一个没有设置字符集的列:

通过show命令可以看到其并没有单独的字符集设置:

我们向这两个列中各插入一个汉字:

可以看到gbk字符集的c1列占用了2个字节,设置为utf8的c2列占用了3个字节

过虽然可以为列单独设置字符集,但在日常开发中我们仅仅对表进行显式的字符集指定

看到这里我们可能会产生一个问题,在上一个测试中,并没有显式的设置数据表t1的字符集,其默认的字符集utf8是从哪来的呢?答案是其所属的数据库。首先使用status命令可以看到当前所处的数据库为mysqltest:

通过show命令查看数据库的建表语句,可以看到当前数据库的默认字符集为utf8

如同建表一样,我们可以在创建数据库时显式的指定数据库的字符集:

在mysqltest2中创建的表如果不显式的指定字符集,其字符集默认就是gbk,继承于其所在的数据库:

有了前面的思考,我们自然而然的会想到一个新的问题,我们在创建数据库时如果不显式指定字符集,其默认字符集是从哪里继承而来的?答案就是character_set_server选项:

我们将其改成ascii,然后重新创建一个数据库,但是不显式指定字符集:

而很多朋友可能会下意识的认为新建数据库的字符集应该继承于character_set_database参数,事实上不是,可以在文档中找到这句话:

The character set used by the default database. The server sets this variable whenever the default database changes. If there is no default database, the variable has the same value as character_set_server.
The global character_set_database and collation_database system variables are deprecated in MySQL 5.7 and will be removed in a future version of MySQL.

曾用于设置数据库的默认字符集,但是现在已经不生效了,数据库的默认字符集有character_set_server选项决定,如果没有设置该选项值,其默认情况下和character_set_server相同。在MySQL5.7中已经不推荐使用该参数,并且以后会被删除掉。

三、小结

我们在平时使用MySQL时,如果没有特别的需要,尽量不要去修改其默认的字符集设置。并且有以下几个建议:

保持character_set_client、character_set_connection、character_set_results相同
表的字符集尽量使用默认从character_set_server配置的
尽量不单独指定表和列的字符
character_set_server最好配置成utf8mb4
MySQL中utf8mb4_unicode_ci与utf8mb4_unicode_520_ci的中文处理能力对比 本文深入对比了MySQL中utf8mb4_unicode_ci与utf8mb4_unicode_520_ci两种排序规则的中文处理能力,详细分析了它们在拼音排序、生僻字支持、性能表现等方面的差异,并提供了实际应用建议。对于需要处理中文数据的开发者,正确选择排序规则能显著提升查询准确性和性能,特别是在处理生僻汉字和最新Emoji时,utf8mb4_unicode_520_ci表现更优。 阅读详情

相关推荐

[ERROR] COLLATION ‘utf8_unicode_ci‘ is not valid for CHARACTER SET ‘latin1‘

跟着b站的谷粒商城项目做,前面的视频中设置了数据库的字符集编码,但是后面自己发现了MySQL容器重启报错,不停的在重启。docker安装完MySQL并run出容器后,建议请先修改完字符集编码后再新建mysql库-表-插数据。修改字符集编码成功,退出容器重启MySQL也不存在报错。发现删除my.cnf文件MySQL容器又可以正常启动。...

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 3738

数据库字符集设置

数据库字符集character_set_clientcharacter_set_connectioncharacter_set_servercharacter_set_databasecharacter_set_resultscharacter_set_system查看并设置数据库字符集 character_set_client 客户端字符集(客户端向服务器发送的请求) character_set_connection 数据库连接字符集(客户端和数据库的连接) character_set_server 数据

海阔天空的博客 4965

《MySQL 入门教程》第 28 篇 字符集与排序规则

介绍 MySQL 中的字符集(Character Set)和排序规则(Collation)。字符集决定了能够存储哪些字符,排序规则定义了字符集中字符的排序和比较顺序,包括是否区分大小写,是否区分重音等。 MySQL 支持服务器、数据库、表、字符字段级别以及字符串常量的字符集和排序规则设置,同时还可以设置客户端连接的字符集和国家字符集。

Tony.Dong的专栏 3251

Mysql utf8mb3 utf8mb4 与UTF8 字符集参数(character_set_system)的说明

Mysql UTF8之utf8mb3 utf8mb4 字符集概述 字符集即是为了兼容各国的文字而做的编码,比如GB2312、GBK等,通用的编码我们用utf8。 mysql(5.7及8.0)里utf8实际是用3个字节存储即对应utf8mb3,而真正意义上的utf8对应的是4个字节存储即对应utf8mb4。 utf8mb3和utf8mb4的比较: 比较内容 utf8mb3 utf8mb4 存储最大字节数 3

数据科学汇集 2万+

MySQL全局变量character_set_server和collation_connection参数含义

作者:禅与计算机程序设计艺术 1.简介 MySQL是一个开源数据库管理系统,由瑞典MySQL AB公司开发和发布。在很多公司中被作为数据库服务器使用。其中涵盖了诸如商业、金融、政务等应用领域。MySQL数据库中的数据存储用UTF-8字符编码,所以数据表的字段字符集和排序规则均设定为utf8。一般情况下,

AI天才研究院 3271

unicode编码gb2312全字库16X16

unicode格式的包含gb2312全字库。不缺字漏子,适合点阵屏使用,字体是标准的宋体,轻巧耐看,有需要其它大小以及格式的也可以博客联系我

docker部署Redmine项目管理平台

1.下载镜像(自己用的3.4版本) docker pull redmine:3.4 docker pull mysql:5.7 2.运行 docker run -p 3306:3306 --name some-mysql -e MYSQL_ROOT_PASSWORD=“123456” -e MYSQL_DATABASE=redmine -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci docke

qq_33240556的博客 383

IIS - 会话cookie中缺少HttpOnly属性

不啰嗦,我们直接开始! 先进行常规设置 打开配置编辑器 选中图中节点,将httpOnlyCookies设置为true 然后。。。不起作用。。。 换种方式 通过配置出站规则getcookie添加HttpOnly 在Web.config中添加如下出站规则 <rewrite> <outboundRules> <rule name="Add HttpOnly"> <match serverVa.

。 21万+

docker的mysql容器导入、导出(使用mysqldump)sql文件中文乱码问题-设置字符集

前情提要 docker mysql5.7.26容器,使用挂载docker-entrypoint-initdb.d文件夹的方式导入sql文件,使用mysqldump导出sql文件,由于mysql容器字符集、导出时字符集设置错误,中文导入再导出就变成拉丁文了。 ...

YJE的博客 1718

阿里云学生机2核4G,30分钟搞定DNF台服联机(CentOS 7.6保姆级教程)

本文提供阿里云学生机2核4G搭建DNF台服联机的详细教程,涵盖服务器选购、网络配置、服务端部署及客户端联机设置。通过CentOS 7.6系统优化和端口配置,30分钟内即可完成搭建,适合学生和技术爱好者低成本实现游戏联机体验。

weixin_42537919的博客 362

ANSYS APDL学习(6):ANSYS APDL部分命令流介绍

介绍APDL 部分命令流

娱乐至上的博客 1万+

MySQL安装配置全攻略:Windows与Linux双平台实战排障

数据库部署是运维与开发的基础技能,而MySQL作为最流行的开源关系型数据库,其安装配置与排障更是高频需求。掌握跨平台的部署思路,理解配置文件my.ini/my.cnf中的核心参数,是保障数据库稳定运行的关键。字符集选择、权限管理、日志分析等基础概念,直接决定了后续使用中是否会出现乱码、连接失败、性能瓶颈等问题。从开发环境到生产环境,从Windows的图形化操作到Linux的systemd管理,不同的场景需要不同的应对策略。本内容围绕MySQL的版本选型、初始化流程、服务注册、目录规划、安全加固等环节,系统梳

weixin_34005090的博客 252

GNSS接收机性能测试指标详解:TTFF、位置精度、灵敏度等关键参数如何评估

本文详细解析了GNSS接收机性能测试的关键指标,包括首次定位时间(TTFF)、位置精度、灵敏度等,帮助工程师系统评估接收机性能。通过多频段协同定位和载波相位测试等技术,提升定位精度至亚米级。同时,介绍了灵敏度测试的极限挑战和授时精度的专业测试方案,为GNSS接收机的性能优化提供实用指导。

cuda7parallel的博客 969

mysql 5.7 binary_MySQL 5.7.20:无法使用CHARACTER SET'binary'从字符串创建JSON值

I am facing this issue when importing an SQL file with a table with JSON column.The database hasEncoding: utf8mb4Collation: utf8mb4_unicode_ciHere's the table with the json column:CREATE TABLE `tracki...

weixin_40007548的博客 971

芯片设计中的setup和hold检查:为什么你的电路会跑飞?

本文深入解析了芯片设计中Setup与Hold检查的核心原理,它们是确保电路可靠运行的“黄金窗口”。通过剖析触发器物理本质、时序路径公式及检查方法,解释了Setup违例(数据太慢)和Hold违例(数据太快)如何导致电路“跑飞”,并提供了从RTL优化到物理实现的实战修复策略与协同优化技巧。

weixin_29268267的博客 478

计算机模拟爆破过程,基于LSDYNA岩石爆破模拟建模分析

原标题:基于LSDYNA岩石爆破模拟建模分析 Ls Dyna岩石爆破模拟仿真作者:dyna_focus擅长领域:dyna/abaqus/hypermesh一、 数值模型的建立1.1 单元及算法的选择岩石,炸药,空气都采用solid164实体单元。岩石采用常应力实体单元,该种单元属于纯粹的lagrange算法,该种算法单元网格附着在材料上,随着材料的流动而产生单元网格的变形,但是在结构变形巨大时,有...

weixin_29494379的博客 7317

mysql 5.7 binary,MySQL 5.7.20:无法使用CHARACTER SET'binary'从字符串创建JSON值

I am facing this issue when importing an SQL file with a table with JSON column.The database hasEncoding: utf8mb4Collation: utf8mb4_unicode_ciHere's the table with the json column:CREATE TABLE `tracki...

weixin_35972313的博客 615

Java本地AI推理初体验:Jlama+LangChain4j构建离线问答系统

Jlama 是专为 Java 生态设计的现代化大型语言模型(LLM)推理引擎,旨在让开发者无需依赖外部服务即可直接在 Java 应用中运行本地化模型推理。本文将结合Jlama + langchain4j 实现一个本地可运行的简单问答Demo。

2501_92589102的博客 408

MySQL 5.7 创建数据库详解

MySQL 5.7 中创建数据库的核心是使用语句,其基本语法、选项及详细操作步骤如下。

weixin_47558278的博客 433

软考「系统规划与管理师(第2版)」抱佛脚|案例分析预测

规划类(系统/数据/云)+ 服务过程找错改进 + 风险应急终止三大块各备一套成熟模板,术语统一按第2版新教材口径,案例分析 45 分线的希望就大很多。

软件行业技术文化交流。 74

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

gb18030 mysql_MySQL 5.7 supports the GB18030 Chinese Character Set_MySQL

My former boss at MySQL sent out a notice that MySQL 5.7.4 nowsupports theGB18030character set, thus responding to requests that have been appearing since2005. This is a big deal because the Chinese g...

weixin_29502483的博客 355

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

5 分钟学会 MySQL JSON 字段:查询、插入、删除、更新一篇讲清

本文以 MySQL JSON 字段为核心,通过一张 product 商品表示例,演示 JSON 格式数据在数据库中的存储与操作方法。文章依次介绍了 JSON_EXTRACT、->、->> 等查询方式,以及 JSON_INSERT、JSON_REMOVE、JSON_REPLACE、JSON_SET 等新增、删除、更新操作。内容结构清晰,示例完整,适合快速掌握 MySQL JSON 字段的增删改查常用函数。

m0_70325779的博客 4733

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Ubuntu 18.04 安装 MySQL 5.7 实战指南:认证机制、配置陷阱与教学适配

MySQL 是一种关系型数据库管理系统(RDBMS),其核心原理依赖于客户端-服务器架构、SQL 查询解析与存储引擎(如 InnoDB)协同工作。在 Ubuntu 等 Linux 发行版中,MySQL 的安装与运行高度依赖系统级配置,包括包管理机制、systemd 服务控制、文件权限模型及内核参数调优。技术价值在于提供稳定、可复现的数据库环境,支撑教学实验、嵌入式开发和遗留系统维护;典型应用场景涵盖高校数据库课程(如学生课程成绩信息实体表设计)、拉美地区教育平台部署,以及基于 MySQL 5.7 LTS 版

weixin_34326179的博客 467

character-set——一文搞懂字符编码集

title: 字符集category: 数据库MySQL 字符编码集中有两套 UTF-8 编码实现:utf8和 utf8mb4。如果使用 utf8的话,存储emoji 符号和一些比较复杂的汉字、繁体字就会出错。为什么会这样呢?这篇文章可以从源头给你解答。...

z_kakaya的博客 1633

mysql - 字符集character/编码格式unicode

目录 1.查看mysql对象字符集 2.创建对象时设置字符集 3.Alter修改象字符集 在使用MySQL时要注意6个需要编码的地方:系统的编码、客户端、服务端、库、表、列。 1.查看mysql对象字符集 1)查看mysql服务器支持的字符集 show character set; select * from information_schema.character_sets; select character_set_name, default_collate_name, descrip

开码河粉 1300
上一篇: Visual Studio版本号对应表
下一篇: 乱码纠正词典
UU_Yang
博客等级 码龄23年 926粉丝 213原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值