计算机基础知识-编码表模块:计算机基础知识乱码符号有哪些
主题:编码表
关键词:ASCII、Unicode、UTF-8
1、编码表
计算机发明之初,用来解决数字计算的问题,后来人们发现可以做更多的事,但由于计算机只识“数”,因此人们必须告诉计算机哪个数字代表哪个特定的符号。于是除了0、1这些阿拉伯数字,像a、b、c这样的52个字母(包括大小写),还有一些特殊的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,具体用哪些二进制数表示哪些符号,理论上每个人都可以有自己一套规则(这就是编码)。如果想要沟通不造成混乱(乱码),就必须有统一的编码规则。
2、ASCII码
美国首先出台了ASCII编码(读音:/ˈæski/),规定了常用符号的二进制数对照表。因为英文字母、数字再加上其他常用符号,大概100多个,因此用7个比特位(最多表示128位)就够用了,所以一个字节中省下的那个比特位就默认为0。后来这套编码传到欧洲,发现128位不够用,就把最后一个比特位也编进来。因此欧洲普遍使用一个全字节(8个比特位)进行编码,最多表示256位,至此一个字节就用满了。
3、GB2312
计算机传入中国,同样的问题,10万多个汉字一个字节256位远远不够,于是中国科学家自力更生,重写了一张编码表,就是GB2312,它用2个字节16个比特位(65536位)表示常用汉字,后来,为了显示更多汉字,出台了GBK标准。不仅中国,其他国家也搞出自己的一套编码标准,这样的话地球村村民无法沟通,为了沟通的便利,Unicode(万国码)应运而生。
4、Unicode
Unicode又称“万国码”,这套编码将世界上所有的符号都纳入其中,现在Unicode可以容纳100多万个符号,所有语言都可以互通,一个网页上可以显示多国语言。但是问题又来了,自从英文用上了Unicode编码,为了迁就一些占用字节比较多的语言,英文也跟着占用两个字节,比如存储A,原来00010001就可以了,现在偏得用两个字节:00000000 00010001才行,这样对计算机空间存储是种极大的浪费!基于这个痛点,科学家们又提出了新的想法:可变长度字符编码,UTF-8来了!
5、UTF-8
UTF-8是一种针对Unicode的可变长度字符编码,它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。当字符在ASCII码的范围时,就用一个字节表示,所以UTF-8还可以兼容ASCII编码。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论