mysql length()与char_length()
情景展示
mysql如何计算字符串所占用的字符长度与字节长度?
length()
通常情况下,我们经常使用的是这个函数,用来统计字符串的长度。
char_length()
该函数可以统计字符串所占用的字节数。
以表情符号😓进行举例说明:
SELECT CHAR_LENGTH('😓') 字符长度, LENGTH('😓') 所占字节
在Navicat当中,显示结果如下:
我们可以看到:
在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,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/16113699.html