ASCII编码
学编程的时候,ASCII是最早介绍的字符编码.
标准ASCII使用7位二进制数,因为一个字节占8位,所以在第一位补0形成8位....这也说明了一个问题,由于ASCII编码长度很短,可以表示的字符有限,遇到中文或者其他字符,就需要其他编码来表示....比如中文,上万个汉子需要表示,仅用1个字节表示$2^8$个字符是不够的.所以像GB2312就是使用两字节表示一个汉字,一共$2^8$ * $2^8$ = 65536个
Unicode编码
因为存在不同的编码...主要聊聊常见的UTF-8
UTF-8规则:
如果字符只有一个字节则其最高二进制位为0,后7位是字符的Unicode码.单字节的编码和ASCII一致
对于N字节(N>1),第一个字节前N位设为1,第N+1...单字节编码的问题是能够表示的字符很少,但是单字节和计算机最基础的表示单位一致,所以面对其他编码的中文表示,可以拆成一个一个的单字节,用Latin-1进行保存.所以就像上面UTF-8对鱼的表示一样,用Latin