我时常被字符集编码搞的很晕,每次遇到编码的问题时,才会暂时抱佛脚,上网去搜一下某个编码的介绍。最终发现,我头脑里的资讯错乱不已。终于忍无可忍,决定梳理一下。
ASCII码,全称American Standard Code for Information Interchange。这是早期最有名的字符集编码,它是为英文通信而设计的。它是由128个字符组成,用一个字节来表示。表示的字符分别是:大小写字母,数字,标点符号,非打印字符及控制符。
Latin-1,全称ISO 8859-1 Latin 1。由于ASC码是为英文通信设计的,但是像欧洲语言中有很多带音标符号的字符,这些都无法使用ASC表示出来,于是设计师们就在ASC码的基础上进行了扩展。从而设计出了Latin码。Latin码同样是以一个字节的来表示。它使用128-255来表示拉丁字符中的特殊字符。
Unicode码,Latin-1解决了欧洲字符集编码的问题,可是全世界并不是只有拉丁语系的语言和英文,还有亚洲的中文,日文,韩文及非洲的语言。Latin-1一个字节显然是无法表示的。最终国际组织建立了Unicode编码,用于对世界上所有的语言进行编码。Unicode编码由两个字节或四个字节来表示。
UTF8编码,有了Unicode编码似乎所有的问题都解决了,事实并非如此。人们发现Unicode用于表示ASC码的效率非常的低,因为Unicode编码表示ASC字符集的时,要比ASC编码多出一倍的空间,而且,对于ASC码来说高位的0对于它没有任何的意义。于是伟大的设计师们又设计出了一种中间格式字符集,也叫通用换码格式的字符集。UTF8就是其中一种。
从对照表上可以看出,使用UTF8表示ASC码时,一样是一个字节,而且它们的编码是完全一样的。
ASC码,Latin-1,Utf8,Unicode字符集编码简史
最新推荐文章于 2023-05-09 10:47:23 发布