认识常见的编码知识(Unicode,GBK,utf-8,utf-16)

### unicode,GBK,utf-8,utf-16相关知识

1.Unicode是字符集,为每一个字符分配一个码位。

字符集的定义:为每一个字符分配一个唯一ID,这个唯一ID学名为码点\码位\code point

1. char类型占2字节,java使用的是Unicode字符集而不是ASCII
   
   1) 1个字节(8位),组合出256种状态,局限是只能显示字母数字,英式标点符号,适用于美国英语,对其它语言无能为力。
   2) 简体中文常见的编码方式是GB2312,使用2个字节表示一个汉字。
   3) Unicode,万国码每一个符号都给与一个独一无二的编码,是用来映射字符和数字的标准。但并没有规定如何存储。
   4) 使用Unicode编码方式
      
      * UTF-8,0-127号字符使用和ASCII相同的编码,128以上 的采用2,3,4个字节表示,他是一个可变长度的编码方式,优势是包罗万象,劣势是浪费空间,utf-8是一编码规则。
      * UTF-16 占用2或4个字节
      * GB 2312 出于utf-8浪费空间的考虑,然后发布了使用2个字节编码中文汉字的编码方式。GBK是GB2312的扩展
   5) char为什么是两个字节?
      刚开始unicode收录字符并不多,2个字节完全可以表示,随着unicode收录字符越来越多,超过的部分只能用2个char表示(utf-16),utf-16兼容使用char为2字节的编码方式。

      
 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值