编码先从ASCII码说起,它是美国人发明的适用于自己国家的编码方式;但是ASCII码只使用一个字符(8bit)来存储,存储不下强大的中文文字系统,所以我们国家对ASCII码进行了扩展,最终扩展成GBK来包容我们大多的汉字;当然其他国家也会对ASCII进行扩展来包含自己的语言文字,这样在不同国家进行通信时就会造成编码方式不统一进而产生乱码问题;为了解决这个问题出现了统一编码Unicode,它包含了许多国家的通用文字,所以体积偏大,Unicode字符编码是使用2个字符的固定长度来存储的,所以对于英文数字等会浪费许多空间,这样应运而生了UTF-8,UTF-8是可变长的编码方式,UTF-8存储英文使用一个字符,汉字使用多个字符,但是这样会导致在内存中处理时很不方便,产生大量额外的计算,所以UTF-8常用在文件中存储,当文件需要进入内存时会自动从UTF-8转换成Unicode进而方便计算。当用记事本存储相同的文本分别使用ANSI(计算机当前编码方式,中文Windows系统就是GBK)和Unicode编码时会发现Unicode编码占用空间较大。