php中文网

utf8mb4 是定长存储吗?

php中文网

utf8mb4 的存储特性

关于 utf8mb4 是否为定长存储的问题,我们从相关文档中了解到:

  • utf8mb4 是一种变长的编码,取决于存储的字符。
  • 与 utf8mb3 相比,utf8mb4 可以存储更大的字符范围,包括补充字符。

存储空间占用

当存储 BMP 字符(Unicode 中范围 from U+0000 to U+FFFF 的常见字符)时,utf8mb4 和 utf8mb3 具有相同的存储特性:

  • 一个英文字符占 1 个字节。
  • 一个 BMP 字符最多占 3 个字节。

然而,对于补充字符(超出 BMP 范围的字符),utf8mb4 需要 4 个字节来存储,而 utf8mb3 无法存储它们。

因此,utf8mb4 不是定长存储,其存储空间占用根据存储的字符而变化。存储的字符越多,占用的空间就越大。这主要是因为 utf8mb4 允许存储更宽的字符范围,包括表情符号和中文汉字。

以上就是utf8mb4 是定长存储吗?的详细内容,更多请关注php中文网其它相关文章!