varchar存多少个汉字,多少个英⽂
1. 关于
UTF-8(Unicode Transformation Format-8bit)。是⽤以解决国际上字符的⼀种多字节编码。它对英⽂使⽤8位(即⼀个字节) ,中⽂使⽤24位(三个字节)来编码。
2. 关于
GBK 是国家标准GB2312基础上扩容后兼容GB2312的标准。 GBK的⽂字编码是⽤双字节来表⽰的,即不论中、英⽂字符均使⽤双字节来表⽰,为了区分中⽂,将其最⾼位都设定成1。 GBK包含全部中⽂字符,是国家编码,通⽤性⽐UTF8差,不过UTF8占⽤的数据库⽐GBK⼤。
3. 关于
MySql 5.5 之前,UTF8 编码只⽀持1-3个字节。从MySQL 5.5 开始,可⽀持4个字节UTF编码utf8mb4,⼀个字符最多能有4字节,所以能⽀持更多的字符集。 utf8mb4兼容utf8,且⽐utf8能表⽰更多的字符。普通的常⽤的汉字⽤utf8mb4作为字符集时占3个字节,不常⽤的汉字占4个字节。 emoji表情,必须⽤utf8mb4,否则会导致插⼊数据库异常。
4. 汉字长度与编码有关
MySql 5.0 以上的版本:
⼀个汉字占多少长度与编码有关: UTF-8:⼀个汉字占3个字节;不能存储不常⽤的汉字和emoji表情;英⽂是⼀个字节 utf8mb4:⼀个汉字占3个字节;能存储不常⽤的汉字和emoji表情,占4个字节;英⽂是⼀个字节 GBK:⼀个汉字 = 2个字节,英⽂是⼀个字节
varchar(n) 表⽰n个字符,⽆论汉字和英⽂,MySql都能存⼊ n 个字符,仅实际字节长度有所区别。
MySQL检查长度,可⽤SQL语⾔ SELECT LENGTH(fieldname) FROM tablename
5. 关于varchar
mysql的记录⾏长度是有限制的,不是⽆限长的,这个长度是64K,即65535个字节,对所有的表都是⼀样的。 MySQL对于变长类型的字段会有1-2个字节来保存字符长度。
当字符数⼩于等于255时,MySQL只⽤1个字节来记录,因为2的8次⽅减1只能存到255。字符串长度255是多少个汉字
当字符数多余255时,就得⽤2个字节来存长度了。
在utf-8状态下的varchar,最⼤只能到 (65535 - 2) / 3 = 21844 余 1。
在gbk状态下的varchar, 最⼤只能到 (65535 - 2) / 2 = 32766 余 1

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。