JavaSE: 字符编码

1.  编码表的由来

      计算机只能识别二进制数据,早期就是电信号。

      为了方便计算机可以识别各个国家的文字,就需要将各个国家的文字采用数字编号的方式进行描述,并建立对应的关系表,该表就叫做编码表。

2.  常见的编码表

      ASCII:          美国标准信息交换码,使用一个字节的低7位二进制进行表示

      ISO8859-1:          拉丁码表,欧洲码表,使用一个字节的 8 位二进制进行表示

      GB2312:         中国的中文编码表,最多使用两个字节16位二进制进行表示

      GBK:            中国的中文编码表升级,融合了更多的中文文字符号,最多使用两个字节16位二进制位表示

      Unicode:          国际标准码,融合了目前人类使用的所有字符,为每个字符分配唯一的字符码。

                    所有的文字都用两个字节16位二进制位来表示

3.  编码的发展

      <1>面向传输的众多 UTF (UCS Transfer Format)标准出现了, UTF-8就是每次 8 个位传输数据,而 UTF-16 就是每次 16个位。

        这是为传输而设计的编码并使编码无国界,这样就可以显示全世界上所有文化的字符了。

      <2>Unicode只是定义了一个庞大的、全球通用的字符集,并为每个字符规定了唯一确定的编号,具体储存成什么样的字节流,

        取决于字符编码方案。 推荐的Unicode编码是UTF-8 和 UTF-16。  

      <3>UTF-8:变长的编码方式,可用 1 - 4 个字节来表示一个字符

原文地址:https://www.cnblogs.com/JasperZhao/p/14869785.html