字符编码

字符编码指的是对每一个独一无二的字符赋予一个数字,然后将这个数字转换成计算机二进制补码的方式存储,这样计算机就可以识别每个字符了。

目前耳熟能详的对字符进行编码的方法有ASCII、Unicode和UTF-8,本文主要介绍这三种编码方式的区别以及演化

字符编码的演化

总的来说,ASCII(发音为"askey”)编码方式用7位二进制数编码了128个字符,最高位统一规定为0. ASCII编码主要面对的是大小写英文字母,数字0-9,各种标点符号以及一些特殊字符。

由于世界上的字符远不止128个,各个国家的语言也会有其特殊的字符存在,所以需要一种统一的编码方式来对世界上可能存在的所有字符进行编码,于是就诞生了Unicode统一码,Unicode采用定长的方式对每个字符进行编码

Unicode暴露的问题是,如果对每个字符都用定长编码,对于一些只需要单字节存储的字符来说,存储的成本较高,于是出现了多种Unicode编码的实现方式,UTF-8就是其中的一种。

UTF-8以字节为单位对Unicode进行编码,实现了对于长字符编码长度较长,短字符编码长度较短的效果