一个汉字在数据库占几个字节

项目中oracle10g数据库表字段为varchar(n)类型,存英文很简单,只要字母个数不大于n即可。但是对于汉字,按照同样的方法就不行了。因为对于汉字不同的字符集,在数据库占用的字节是不一样的。UTF-8字符集,一个汉字占三个字节,gbk字符集,一个汉字占两个字节,比如varchar(10)类型的字段,UTF-8的汉字,只能存3个,gbk字符集的汉字却能存5个。
所以在程序中根据表字段varchar的大小,保存或更新时作出必要的校验否则后台会报错。
办法:1、用表格 maxlength属性,比如maxlength="5",即只能存5个汉字。

 

MySQL 5.0以上的版本:

1.一个汉字占多少长度与编码有关:

UTF-8:一个汉字=3个字节

GBK:一个汉字=2个字节

 

2.varchar(n)表示n个字符,无论汉字和英文,Mysql都能存入n个字符,仅是实际字节长度有所区别

 

3.MySQL检查长度,可用SQL语言:

select LENGTH(fieldname) from tablename 来查看

posted @ 2020-07-09 22:26  阿波罗任先生  阅读(2533)  评论(0编辑  收藏  举报