1、基础知识
计算机中储存的信息都是用二进制数表示的;而我们在屏幕上看到的英文、汉字等字符是二进制数转换之后的结果。通俗的说,按照何种规则将字符存储在计算机中,如'a'用什么表示,称为"编码";反之,将存储在计算机中的二进制数解析显示出来,称为"解码",
如同密码学中的加密和解密。在解码过程中,如果使用了错误的解码规则,则导致’a’解析成’b’或者乱码。
2、字符集(Charset)(字符的集合):
是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称
,包括各国家文字、标点符号、图形符号、数字等。
3、字符编码(Character Encoding)(二进制与字符集的对应关系):
是一套法则
,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。即在符号集合与数字系统之间建立对应关系,它是信息处理的一项基本技术。通常人们用符号集合(一般情况下就是文字)来表达信息。而以计算机为基础的信息处理系统则是利用元件(硬件)不同状态的组合来存储和处理信息的。元件不同状态的组合能代表数字系统的数字,因此字符编码就是将符号转换为计算机可以接受的数字系统的数,称为数字代码。
字符集和字符编码是对应的,按照某种字符编码格式进行编码的字符,只对向对应的字符集是有意义的。
4、字节
这个是最基本的概念了,字节是计算存储容量的一种计量单位
·。我们知道计算机只能识别1和0组成的二进制位。一个数就是1位(bit),为了方便计算,规定8位就是一个字节
。
例如 :00001111 这个8位二进制数就占了一个字节的存储容量。
5、字符
字符和字节不太一样,任何一个文字或符号都是一个字符,但所占字节不一定,不同的编码导致一个字符所占的内存不同
。
例如:标点符号+是一个字符,汉字我们是两个字符
,在GBK编码中一个汉字占2个字节,在UTF-8编码中一个汉字占3个字节。
随着时代的发展,程序员们希望在计算机中显示字符,但计算机只能识别0和1的二进制数。于是就有了编码规范。