我们知道在utf-8编码格式下,一个字符占三个字节,即1character=3bytes
CHAR_LENGTH计算字符长度,LENGTH计算字节长度
那么mysql中,char(M)这个M单位到底是字节还是字符呢,在不同的编码下测试为:
1.utf-8编码
1charactor(字符)=3bytes(字节),1个汉字又等于1charactor
当我们设置varchar(100)的时候即可以存储100个汉字又可以写入100个字母
2.gbk编码
1charactor(字符)=2bytes(字节),1个汉字也等于1charactor
当我们设置varchar(100)的时候即可以存储100个汉字又可以写入100个字母
3.latin1编码
1charactor(字符)=1bytes(字节),1个汉字也等于2charactor
当我们设置varchar(100)的时候可以存储100字母确只能写入50个汉字
综上:我个人狭隘的理解为,mysql数据库中,char(M)这个M单位存储的是字符...