最近想要用typedArray和sharedArrayBuffer,嗯,看完文档发现只有int、float的array,都是给数字的,那字符串咋搞? 编码呗。 Ascii? utf-8? 这玩意儿到底搞了啥? 不清楚啊。 因此就翻了大佬们的一些博客学习了一下。html
计算机里全部信息都是拿二进制位来存的(0,1)。 因此1个字节就能够存256种状态。ASCII码就把全部英文字符都划分在了32-127之间的状态里。 好比A在ASCII里就是65.学习
由于ASCII只规定到了127.只用了7位,因此规定第一位所有都为0.编码
ASCII码解决了英文字符的问题,那其余字符咋办? 好比法文,希腊文? 欧洲各个国家就利用了ASCII没有用的第一位字符,本身搞了一堆体系,而后你用你的,我用个人。 因此邮件里会出现文案乱七八糟的状况。code
怎么解决呢?要解决各搞各的,那就出一套统一的咯。因此就诞生了unicode。unicode给世界上全部的符号都赋予了一个编码。htm
那unicode是怎么容纳全部字符的呢? 答案很简单,用更多的空间。。 比起ASCII码只用了7位,只须要一个字节,unicode可能会占到2个、3个、4个字节,甚至更多。blog
这么搞老美就不干了啊,个人英文字符一个字节就够了,你搞一套东西出来我要用加倍的空间去存,确定不划算啊。utf-8
为了解决上面的问题,大佬们又搞出了一套utf-8的实现。utf-8最大的特色就是,长度不固定,老美写的英文字符,用utf-8编码就只要1个字节,咱写的中文字符,就要多个字节。 而后对于1个字节的符号,第一位为0. n个字节的符号,第一个字节的前n位都为1,n+1位为0.后面字节的前两位都为10。 因此编码的时候,看到第一位为1的,就数数有几个1,有几个就占几个字节。ci
好比“双”字, unicode的值为53CC(1001001111001100),根据上面的规则,转成utf-8就变成111010011000111110001100。unicode
嗯,这么一搞,你们都开心了。。文档