情景展示

mysql如何计算字符串所占用的字符长度与字节长度?

length()

通常情况下,我们经常使用的是这个函数,用来统计字符串的长度。

char_length()

该函数可以统计字符串所占用的字节数。

以表情符号😓进行举例说明:

SELECT CHAR_LENGTH('😓') 字符长度, LENGTH('😓') 所占字节

在Navicat当中,显示结果如下:

mysql length()与char_length()_java

 

我们可以看到:

在mysql当中,😓的字符长度为1,相当于:java当中的String.length(),所占字节为4,相当于:java当中的String.getBytes(StandardCharsets.UTF_8).lenth。

关于utf-8 

MySQL 的“utf8”实际上不是真正的 UTF-8;

在MySQL中,“utf8”编码只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节;

在utf8编码中,中文是占3个字节,其他数字、英文、符号占一个字节(一个字节包含8个比特);

注意:emoji符号占4个字节,一些较复杂的文字、繁体字也是4个字节。

MySQL 的“utf8mb4”才是真正的“UTF-8”。

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!


作者:Marydon