因为计算机只能识别0和1,相当于一个二进制,即位
程序中8个位构成一个字节,这样总共 2的八次方是等于 256
而早期美国的程序员只对0-128进行了编码
第0~32号及第127号(共34个)是控制字符或通讯专用字符,如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;
第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
(比如二进制1000001在计算机上就会直接编码转化A而不是65)这样就可以完成一系列操作,还可以输入字母组成语言
由于英文的特殊性,只有二十六个字母,可以很简单的穷尽。然而如果到了其他国家,比如中国,中文的并不能像英文那样在256范围以内全部输入,毕竟汉字在中国有成千上万个,并不好列举。
于是国内就像出一种办法,一个字节不行就两个字节甚至三四个字节,一个字节有128种可能,两个字节就有128128=16384种,三个字节就有128128*128=2 097 152种,两个字节其实完全就足够了。于是国内就制定了GBK(GB2312编码的扩展)编码,这样就可以在计算机上输入中文字符了
也正因如此,有了全角和半角之分,半角指的是单字节的,早期的英文128编码以内,所以占用内存较小,而像中文等其他象形文字则采用的是多字节。占用内存较大,所以叫全角。
这也就是为什么在编程的时候,输入中文的标点符号比如;会报错的原因,毕竟编译的程序是外国人是写的当然也就只识别歪国人的符号了,而外国的符号基本都是半角的。
这里关于utf-8讲一下,因为国内外标准不一致,不止有中国还有韩国日本等等,各国都制定了标准,这就导致每个国家都不能兼容其他国家的字符,也就是在中国你可能打不出韩文
所以为此,国际上就开始制作一种统一化的标准,能够输出各国的文字,utf-8就横空出世,里面有的甚至采用的是4个字节的编码,所以完全可以普及大部分的语言,甚至少数民族的语言也可以在上面打出。