mysql编码格式
所属分类:Database | 发布于 2022-11-12 16:01:26
在mysql的配置文件有几项是关于mysql字符集设定的。今天一文搞懂mysql编码格式设置。
mysql8.0将默认的编码格式改成了utf8mb4。
先看mysql8.0版本默认的编码格式
mysql> status
--------------
mysql Ver 8.0.31 for Win64 on x86_64 (MySQL Community Server - GPL)
.....
Using delimiter: ;
Server version: 8.0.31 MySQL Community Server - GPL
Protocol version: 10
Connection: 127.0.0.1 via TCP/IP
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb3
Conn. characterset: utf8mb3
TCP port: 3306
Binary data as: Hexadecimal
再看看mysql之前版本的,下面是mariadb的
MariaDB [(none)]> status
--------------
mysql Ver 15.1 Distrib 10.5.8-MariaDB, for Linux (x86_64) using readline 5.1
.....
Using delimiter: ;
Server: MariaDB
Server version: 10.5.8-MariaDB-log MariaDB Server
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
可以看到mysql8.0将默认的编码集由latin1换成了utf8mb4。
unicode,utf-8
unicode:为了解决 语言编码不统一的问题,美国人提出一种标准方案来展示世界上所有语言的所有字符,处于这个目的,unicode诞生了,unicode相当于一本很厚的字典,记录着世界上所有字符对应的一个数字。
utf-8:utf-8编码是unicode编码的一种实现。是一种针对unicode的可变长度字符编码,这意味着存在一个字符需要一到四个字节,单字节编码的第一字节为[00-7F],双字节编码的第一字节为[C2-DF], 三字节编码的第一字节为[E0-EF]。这样只要看到第一个字节的范围就可以知道编码的字节数。 这样也可以大大简化算法。
mysql种的utf8,utf8mb3,utf8mb4
utf8mb4,在mysql5.5.3之后增加了utf8mb4编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode字符,mysql中的utf8,就是最大3个字节的unicode字符,也就是mysql中的utf8mb3。