汉字的字节长度

依据编码形式:
GB-231280 编码为 2个字节(Byte) 包含了 20902 个汉字,其编码范围是 0x8140-0xfefe。
GB18030-2000(GBK2K) 在 GBK 的基础上进一步扩展了汉字,增加了藏、蒙等少数民族的字形。编码是变长的,其二字节部分与 GBK 兼容;四字节部分是扩充的字形、字位,其编码范围是首字节 0x81-0xfe、二字节0x30-0x39、三字节 0x81-0xfe、四字节0x30-0x39
Unicode 范围一般所用为\U0000-\UFFFF,对于CJK EXT B区汉字,范围大于\U20000
UTF, 按其基本长度所用位数分为UTF-8/16/32。其中:
UTF-8是变长编码,每个Unicode代码点按照不同范围,可以有1-3字节的不同长度,一般为3个字节。

UTF-16长度相对固定,只要不处理大于\U200000范围的字符,每个Unicode代码点使用16位即2字节表示,超出部分使用两个UTF-16即4字节表示。按照高低位字节顺序,又分为UTF-16BE/UTF-16LE。

UTF-32长度始终固定,每个Unicode代码点使用32位即4字节表示。按照高低位字节顺序,又分为UTF-32BE/UTF-32LE。


* 在hibernate中length=?的长度跟oracle varchar2(?)定义的长度相同,都表示?字节,但是必须在jsp页面中控制字符的长度,因为输入框检查一个中文算一个字符长度,但如果存到数据库中一个中文就是2~3个字节,因此必须控制中文字符的总数使之转换成字节时不超过数据库的最大长度。

*因此在数据库中定义varchar2(4000),则在界面最多只能存1333个中文(编码为utf-8),因为此编码下一个中文就是3个字节。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值