关于MySQL length(x)函数的字节数的疑惑?

为什么我用MySQL里面的 length(s) 内置函数查询的中文和中文标点是三个字节呢?不是一个汉字占两个字节吗?

img

MySQL 5.0以上的版本:

1.一个汉字占多少长度与编码有关:
UTF-8:一个汉字=3个字节
GBK:一个汉字=2个字节

2.varchar(n)表示n个字符,无论汉字和英文,Mysql都能存入n个字符,仅是实际字节长度有所区别

3.MySQL检查长度,可用SQL:select LENGTH(fieldname) from tablename 来查看

ASCII 码中,一个英文字母(不分大小写)为一个字节,一个中文汉字为两个字节。
UTF-8 编码中,一个英文字为一个字节,一个中文为三个字节。
Unicode 编码中,一个英文为一个字节,一个中文为两个字节。