什么是字符编码?(Java)

初学笔记(十四)


引言

对于8种基本数据类型来说:
其中byte,short,int,long,float,double,boolean,这7种类型计算机表示起来
比较容易,因为他们都是数字。其中布尔类型只有两个值true和false,实际上
true和false分别在C++中对应的是1和0,1为true,false为0。

对于char类型来说计算机表示起来比较麻烦,因为char对应的是文字,每一个国家
的文字不一样,文字不能直接通过“自然算法”转换成二进制。这个时候怎么办?
 字符编码诞生了。

 

什么是字符编码?

字符编码是人为定义的一套转换表。

在字符编码中规定了一系列的文字对应二进制。

字符编码其实就是一本字典,该字典中描述了文字与二进制之间的对照关系。

 

字符编码的发展过程:

起初的计算机是不支持文字的,只支持科学计算。后来随着九三级的发展,计算机开始支持文字,最先支持的是英文,英文对应的字符编码方式是:ASCII码。

ASCII码采用1byte进行存储,因为英文字母是26个。

                'a' --(采用ASCII码进行编码)-> 01100001
                01100001 --(采用ASCII码进行解码)-> 'a'
                如果编码和解码采用的不是同一个编码方式,会出现乱码。
                'b' ---> 98
                'c' ---> 99...
                'a' ---> 97

                'A' ---> 65
                'B' ---> 66
                ...

                '0' ---> 48  (这个'0'不是那个0,是文字'0')
                '1' ---> 49
            
随着计算机语言的发展,后来国际标准组织制定了ISO-8859-1编码方式,
 又称为latin-1编码方式,向上兼容ASCII码。但不支持中文。

后来发展到亚洲,才支持中文,日文,韩文....
中文这块的编码方式:GB2312 以上编码方式是简体中文。

 在java中,java语言为了支持全球所有的文字,采用了一种字符编码方式
  叫做unicode编码。unicode编码统一了全球所有的文字,支持所有文字。
具体的实现包括:UTF-8 UTF-16 UTF-32....
        
 需要记住:
            ASCII('a'是97 'A'是65 '0'是48...)
            ISO-8859-1(latin-1)
            GB2312
            GBK
            GB18030
            Big5
            unicode(utf8 utf16 utf32)
 

 

你可能感兴趣的:(初学笔记)