MySQL中汉字占多少字节?varchar(x)中的x如何理解?

这几天在写接口校验,碰到个有意思的事,前端开发人员问我某个字段的长度控制在多少?

我查了查数据库,发现是varchar(100),于是就说数据库字段限制100,汉字咱们限制50吧。

每个汉字占2个字节,100/2=50,看起来没什么问题。

这时旁边另一个开发说不对,有的偏僻字占3个字节。。。这就很尴尬了,这长度校验咋写?

于是我上网查了查,发现原来我们都理解的不对快哭了

MySQL中varchar(100)中的100指的是字符数,不是字节数。也就是说,varchar(100)能输入100个英文,100个汉字,我实际测试了下,上面的说法是正确的。不管是汉字,英文,字符,数字,都能输入100,超过100会报错。

也就是说,MySQL中varchar(x)中的x指的是字符数,不是字节数。至于每个字符占多少字节要看编码格式。

UTF-8编码中,每个汉字占3个字节,英文字母1个字节。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值