“Utf8mb4 和 utf8 啥区别?”的版本间的差异
		
		
		
		
		
		跳到导航
		跳到搜索
		
				
		
		
	
Jihongchang(讨论 | 贡献)  | 
				Jihongchang(讨论 | 贡献)   | 
				||
| (未显示同一用户的1个中间版本) | |||
| 第3行: | 第3行: | ||
https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb4.html  | https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb4.html  | ||
| − | + | 首先 utf8 是变长字节编码,utf8mb3 和 utf8mb4 都是变长的。  | |
:utf8mb4 是指 4字节 UTF-8 Unicode 编码  | :utf8mb4 是指 4字节 UTF-8 Unicode 编码  | ||
| − | + | *支持BMP 字符,另外相对 utf8mb3 新增了一部分字符的编码(emoji……)  | |
| − | *  | + | *每个多字节字符最多需要四个字节(其实就是相对 utf8mb3 新增的字符应用了4字节编码)  | 
| − | *  | ||
| − | |||
:utf8mb4 和 utf8mb3 比较起来,utf8mb3 只支持 BMP 字符,并且 utf8mb3 每个字符最多使用 3 个字节:  | :utf8mb4 和 utf8mb3 比较起来,utf8mb3 只支持 BMP 字符,并且 utf8mb3 每个字符最多使用 3 个字节:  | ||
| 第15行: | 第13行: | ||
*对于增补字符,utf8mb4 需要四个字节来存储它,而 utf8mb3 则根本无法存储该字符。 将 utf8mb3 列转换为 utf8mb4 时,您不必担心转换增补字符,因为没有增补字符。  | *对于增补字符,utf8mb4 需要四个字节来存储它,而 utf8mb3 则根本无法存储该字符。 将 utf8mb3 列转换为 utf8mb4 时,您不必担心转换增补字符,因为没有增补字符。  | ||
| + | utf8mb4 是 utf8mb3 的超集,包含了所有 utf8mb3 编码的字符,并且对应编码是一样的,只是 utf8mb3 没有 utf8mb4 里增补的4字节编码的字符,  | ||
| + | :现在 utf8 就是指 utf8mb3,3字节 UTF-8 Unicode 编码,utf8 一直被 MySQL 作为 utf8mb3 字符集编码的别名,但这种用法正在被逐步淘汰;  | ||
| − | + | 从 MySQL 8.0.28 开始,SHOW 语句和信息模式表的列显示 utf8mb3。未来 utf8mb3 会被移除,utf8 就变成专指 utf8mb4 了  | |
| − | |||
| − | |||
| − | |||
| − | 从 MySQL 8.0.28 开始,SHOW 语句和信息模式表的列显示   | ||
| − | |||
| − | |||
| − | |||
| − | |||
2023年2月11日 (六) 11:43的最新版本
https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8.html
https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb4.html
首先 utf8 是变长字节编码,utf8mb3 和 utf8mb4 都是变长的。
- utf8mb4 是指 4字节 UTF-8 Unicode 编码
 
- 支持BMP 字符,另外相对 utf8mb3 新增了一部分字符的编码(emoji……)
 - 每个多字节字符最多需要四个字节(其实就是相对 utf8mb3 新增的字符应用了4字节编码)
 
- utf8mb4 和 utf8mb3 比较起来,utf8mb3 只支持 BMP 字符,并且 utf8mb3 每个字符最多使用 3 个字节:
 
- 对于 BMP 字符,utf8mb4 和 utf8mb3 具有相同的存储特性:相同的代码值、相同的编码、相同的长度。
 
- 对于增补字符,utf8mb4 需要四个字节来存储它,而 utf8mb3 则根本无法存储该字符。 将 utf8mb3 列转换为 utf8mb4 时,您不必担心转换增补字符,因为没有增补字符。
 
utf8mb4 是 utf8mb3 的超集,包含了所有 utf8mb3 编码的字符,并且对应编码是一样的,只是 utf8mb3 没有 utf8mb4 里增补的4字节编码的字符,
- 现在 utf8 就是指 utf8mb3,3字节 UTF-8 Unicode 编码,utf8 一直被 MySQL 作为 utf8mb3 字符集编码的别名,但这种用法正在被逐步淘汰;
 
从 MySQL 8.0.28 开始,SHOW 语句和信息模式表的列显示 utf8mb3。未来 utf8mb3 会被移除,utf8 就变成专指 utf8mb4 了