Java基础(一):常见的编码格式

  • 在计算机中,最小的存储单元是1个字节,即8个bit,所以能表示的字符范围是0~255个
  • 人类要表示的符号(ABCD、我,你,他等,在计算机眼中,都是符号)太多,无法用一个字节来完全表示
  • 要解决这个矛盾,必须要有一个新的数据结构char,而从char到bute必须要编码

一、常见编码格式

1.ASCII码

总共128个,用一个字节的低七位表示,0~31是控制字符:如换行、回车、删除等,32~126是打印字符,可以通过键盘输入并且能够显示出来

2.ISO-8859-1

是国际ISO组织对ASCII码的扩展,涵盖大多数西欧语言字符,所以应用的最广泛。ISO-8859-1仍然是单字节编码,它总共能表示256个字符。

3.GB2312

全称《信息技术 中文编码字符集》,双字节编码。总的编码范围是A1~F7,A1~A9是符号区,总共包含682个符号。B0-F7是汉字区,包含6763个汉字

4.GBK

全称《汉字内码扩展规范》,是为了拓展GB2312,编码范围8140-FEFE(去掉XX7F),总共23940个码位,能表示21003个汉字,编码兼容GB2312,并且不会乱码

5.GB18030

全称《信息技术 中文编码字符集》 是我国强制标准,可能是单字节、双字节或者四字节编码,与GB2312兼容,实际应用并不广泛。

6.UTF-16

具体定义了Unicode字符在计算机中的存取方法,用两个字节来表示Unicode的转化格式,它采用定长的表示方法,不论什么字符都可以用两个字节来表示。大大简化了字符串操作,这也是java中以UTF-16作为内存的字符串存储格式的一个很重要的原因

7.UTF-8

弥补UTF-16由于定长造成的存储空间浪费问题,采用一种变长技术,每个编码区有不同的字符长度。不同类型的字符可以由1!6个字节组成。

UTF-8有以下编码规则:

  1. 如果是1个字节,最高位(第8位)为0,则表示这是1个ASCII字符(00~7F),所以所有的ASCII码已经是UTF-8了
  2. 如果是1个字节,以11开头,则连续的1的个数暗示这个字符的字节数,例如:110xxxxx代表他是双字节UTF-8字符的首字节
  3. 如果是一个字节,以10开始,表示他不是首字节,则需要向前查找才能得到当前字符的首字节。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章