在计算机中,所有东西都是字节,所以文字也是使用字节表示。
ASCII
早期的时候为了方便通用,推出了一套英文字母与数字对应的关系。这套字符集总共也就包括了128个字符,我们知道计算机的一个字节可以表示256种不同的状态,所以这套字符集使用一个字节就可以满足使用,一直沿用至今。
字符集乱码
早期的时候网页中文大部分流行使用GBK/GB2312编码,网页上使用某种固定的编码之后,如果客户端的操作系统没有内置相应的字符集,结果就只能是乱码。打个比方,使用某种规则组成的数字传输到另一段之后也要配置相应的密码本才能解读,这就有点类似战争时期的摩尔斯电码,双方各持编码规则手册,如果中间有人拦截到摩尔斯电码如果没有编码规则手册你也不知道双方在传达什么消息。
Unicode
现在计算机通信逐步全球化,不能一种语言使用一种编码规则,因为大部分有可能多种语言同时呈现在网页上。于是有一个组织推动制定了Unicode字符集,这个字符集集合了大部分国家的语言,每一个字符都有一个唯一的数字对应关系
UTF-8
UTF-8是Unicode的一种实现,占用的字节不固定,因为占用字节按实际数字大小占用,所以非常流行,比如UTF-8表达英文字母就占用一个字节,表达中文占用两到三个字节,绝大多数操作系统都支持,所以普遍流行
UTF-16
UTF-16也是Unicode的一种实现,但它最少也要占用16位,也就是2个字节,灵活性没有UTF-8好,所以不推荐使用这种。