utf8与utf8mb4的区别
时间: 2024-06-03 18:11:08 浏览: 8
utf8 和 utf8mb4 都是 MySQL 编码格式,但它们之间有一些重要的区别。
utf8 编码使用3个字节表示一个 Unicode 字符,因此它支持的字符范围是 U+0000 到 U+FFFF。而 utf8mb4 编码使用4个字节表示一个 Unicode 字符,因此它支持的字符范围是 U+0000 到 U+10FFFF。也就是说,utf8mb4 可以支持更广泛的字符集。
另外,utf8 编码在存储某些字符时可能发生截断,因为某些 Unicode 字符需要4个字节表示,但是 utf8 编码只有3个字节,因此无法存储。而 utf8mb4 编码可以完整地表示所有的 Unicode 字符,不会发生截断。
因此,如果你需要存储中文或者其他非 ASCII 字符,建议使用 utf8mb4 编码。
相关问题
utf8mb4 与utf8
utf8mb4与utf8都是MySQL中的字符集编码方式,但是它们之间有一些区别。具体如下:
1. utf8mb4是utf8的超集,支持更广泛的字符集,包括emoji表情等四字节的unicode字符,而utf8只支持三字节的unicode字符。
2. utf8mb4在存储时需要更多的空间,因为它支持更多的字符集,所以需要使用更多的字节来存储。
3. utf8mb4在MySQL 8.0中已成为默认字符集,而utf8则已经被废弃。
下面是一个演示,展示如何在MySQL中创建一个使用utf8mb4字符集的表:
```sql
CREATE TABLE mytable (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
```
utf8mb3与utf8mb4
UTF-8是一种变长的编码方式,它可以使用1~4个字节来表示一个Unicode字符。
UTF-8mb3和UTF-8mb4的区别在于所支持的字符集不同。
UTF-8mb3(或简称为UTF-8)是最初版本的UTF-8,它只能使用1~3个字节来表示Unicode字符,范围是0x0000 ~ 0xFFFF。
UTF-8mb4是对UTF-8mb3的扩展,它可以使用1~4个字节来表示Unicode字符,范围是0x00000000 ~ 0x10FFFF。