ASCII、Unicode与UTF-8的关系

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Bazingaea/article/details/82591445

计算机最早只有127个字母被编码到计算机里,包括大小写英文字母、数字还有一些符号,这个编码就是ASCII编码。因为计算机最早是外国人发明的,所以字符没有考虑中文,以及其他各国语言。ASCII编码表早在最开始学C语言的时候就有接触,一个字节用来存储一个字符。

后来我们也发展了自己的编码,用来存储中文,中文使用一个字节存储是不够的,至少需要两个字节,有些特殊的文字还需要3-4或者更多的字节来处理,一般不会超过六个字节,这就是GB2312编码。

那同样的,其他国家也会制定将自己国语融入的编码制度,每个国家都有自己的标准,每个国家在制定自己的编码的同时很难做到和其他国家制定的标准不存在冲突,所以在存在多种语言混合的环境中,会出现乱码的情况,为了解决这个问题,就出现了Unicode。

Unicode把所有的语言都统一到一套编码中,这样就不会出现冲突,也不会产生乱码。Unicode一般使用两个字节表示一个字符,无论是中文还是英文。这就出现了一个问题,对于英文字符来说,在ASCII下使用一个字节就足够存储,但在Unicode下使用两个字节存储,这样Unicode要比ASCII需要多一倍的存储空间。

最后,Unicode做出了改进,提出可变长编码,即UTF-8编码,规定常用的英文字母被编码成1个字节,汉字通常使用3个字节,特别的字符使用4-6个字节。如果你要传输的文本包含了大量的英文字符,使用UTF-8编码可以节省空间。

猜你喜欢

转载自blog.csdn.net/Bazingaea/article/details/82591445