ASCII
ASCII编码格式每个字符占一个字节。一个字节共有8位二进制字符,但在ASCII中只有后面的7个字节通过变化来表示字符,第一位是不变的,永远是‘0’。后面的7位最多有128种变换,所以ASCII只能表示128个字符。
128个字符并不够用,所以有了扩展字符集
UTF-8
utf-8编码就是ASCII的扩展字符集。
utf-8的长度是可变的,如果存储的字符用ASCII编码就可保存的话,utf-8就会用ASCII编码储存这个字符,这样这个字符就只占一个字节。
当出现ASCII编码表示不了的字符时就使用多位的方式保存,如下图所示,在第一个字节的前几位表示当前字符的长度,几个‘1’就代表占几个字节。比如第三行那个,程序读取到第一个字节,看到前面有3个‘1’,程序在读取时在向后寻找2两个字节凑够3个字节,在将图中的‘x’位拼到一起读取,就得到了一个完整的字符。