mysql中字符宽度与字节的关系理解

    xiaoxiao2021-03-26  3

    mysql字符与字节的关系(适用于varchar、char、text)

    utf-8字符集下,MySQL中,如果设置varchar(2),插入时,汉字可以插入2个,一个汉字占3个字节,字母可以插入2个,一个字母占一个字节,utf-8编码下存储一个字符采取的是1~3个字节;

    形象的说就是这样的,现在有一个叫varchar的盒子,我们定义有2个格子(mysql中宽度的概念),它能装2个东西,在utf-8的编码下,一个格子是可以存1~3个字节,现在有一个叫字母(ht)和一个叫汉字(测试)的家伙,都想放进了格子,这时候只能放下一个也么放两个字节的字母,要么放6个字节的汉字。不管谁放进去格子数都是2,存储字节数是变化的,2个字母就是两个字节,2个汉字就是6个字节 注:这里的varchar(2)中2在mysql4以后定义为字符宽度,之前版本为字节数

    扩展:mysql与oracle中varchar与varchar2区别

    mysql中varchar(6)代表可以存放6个汉字,6个字母,或6个数字。 oracle中varchar2(6)代表可以中存放6个字节。即oracle中varchar2的长度代表字节数而不是字符数。 mysql中一个汉字占三个字节,Oracle中一个汉字占两个字节。

    转载请注明原文地址: https://ju.6miu.com/read-500370.html

    最新回复(0)