字符编码
基本概念
什么是字符编码?字符编码就是将字符集中的字符映射成一些数字,只不过这些数字是二进制表示而成的。计算机通过存储这些数字的二进制表示,来存储相应的字符。
计算机中存储的基本单位,以及单位之间的换算是什么样的呢?其实每个计算机专业的人都应该知道:计算机中存储的都是01的二进制数字,每个bit位存一个二进制数字0或者1,每个字节Byte由8个bit位组成,就像2个bit能存储4个数字一样:00,01,10,11;一个Byte正好能表示2^8也就是256个数字,每个数字就对应了一个字符。所以说,我们把一个字节,也就是一个Byte作为计算机存储的基本单位。下面是更大的存储单位换算:
- 1KB = 1024B(这里的B就是Byte)
- 1MB = 1024KB
- 1GB = 1024MB
- 1TB = 1024GB
常见的编码
- ASCII码:是最早的字符编码标准,使用的是7位二进制数,表示128个常用字符(但实际上是8位,只不过最高位没用一直都是0),包括英文大小写字母、0-9数字,以及其他常用字符。ASCII编码是单字节编码,每个字符占用一个字节的存储空间。
- GBK:是中文编码标准,支持汉字字符。GBK使用双字节编码,其中一个字节表示高位,另一个表示低位,可以表示大约21000个汉字和字符。GBK是兼容ASCII编码,ASCII可以用一个字节表示一个字符。2^16 = 65536 能存储这么多种字符。
- Unicode:统一码,Unicode采用的是4个字节表示一个字符,他想表示整个是世界的字符,2^32个,肯定够用了,但是有个问题,每个字符都是4个字节,就连之前美国人自己的ASCII码明明可以用一个字节表示,现在用4个字节,不纯纯大怨种嘛,耗费那么多计算机资源干啥。
- utf-8:是一种可变长的Unicode编码,通过使用不同长度的字节表示字符。UTF-8是网上最常用的字符编码方式,可兼容ASCII编码,表示全球所有语言的字符。根据字符集范围采用不同数量的字节表示,ASCII码就用一个字节表示,其他用不同长度的字节表示。
编码和解码
- 编码:将字符转换成二进制数字的过程。
- 解码:将二进制数字转换成字符的过程。
为什么会出现乱码?
因为编码和解码的方式不一样,你用gbk编码,用utf-8解码,那能一样嘛?所以你的txt文件保存的时候采用什么编码,打开的时候就用什么编码方式,这就是规则。
好了,这讲就这么多知识,如果你想要了解的更详细一些,可以去查一下相关资料,记得一键三连哦~