在mysql中,如果是latin1字符集下,一个中文汉字占2个字节数;如果是utf8字符集下,一个中文汉字占3个字节数;如果是gbk字符集下,一个中文汉字占2个字节数。
mysql各字符集下汉字和字母占字节数
varchar(N), 这里的N是指字符数,并不是字节数.占用的字节数与编码有关
在mysql 5.1.5-alpha下测试得出如下结论
latin1:
1character=1byte, 1汉字=2character,
也就是说一个字段定义成 varchar(200),则它可以存储100个汉字或者200个字母。
这一点要注意,尤其是当字段内容是字母和汉字组成时,尽量假设字段内容都是由汉字组成,据此来设置字段长度
utf8:
1character=3bytes, 1汉字=1character
也就是说一个字段定义成 varchar(200),则它可以存储200个汉字或者200个字母。
gbk:
1character=2bytes,1汉字=1character
也就是说一个字段定义成 varchar(200),则它可以存储200个汉字或者200个字母。
也查阅了一下网上的答案:
也就是version4之前,按字节;
version5之后,按字符。