2、编码格式的发展史

1、为什么要去了解编码格式的发展史?为了以后不被编码搞得头大

2、编码格式的祖先:ASCII

 

 

 很早之前,计算机只在美国,美国人为了能在计算机上打印他们自己国家的语言,他们用8个可以开合的晶体管来组成不同的状态,来表示他们国家的字符

并将其称为“字节”,那为什么是8个(女朋友也问过这个问题)?

:如果是一个bit,也就是只有一个晶体管,那最多也只能表示两种状态,也就是两个字符,两个晶体管就是4种状态,显然并不能把他们的字母啥的都表

示出来,那最后他们发现2**7也是就0-127种状态就够用,那2**8是为什么?-----留一些余地,也就是扩展字符,显然后面就用上了。。

 

3、群雄并起:GBK 、Shift-JIS(日文)、Euc-Kr(韩文)

之后计算机使用愈发广泛,各个国家都希望能在计算机中输出自己国家的语言,于是乎 在原来ASCII的基础上,诞生了各个国家自己的一套编码格式,如

中国的GBK、日本的Shift-JIS、韩国的Euc-Kr;

GB2312:当中国用上计算机的时候,ASCII表 已经满了(早期扩展字符是空位,后面逐渐补上的),而我们还有6000+个常用汉字需要保存。那就自己搞吧,

就把原来127后面的奇怪的 字符都去除。规定:一个小于127 的字符意义和之前一样,两个大于127 的字符连在一块就表示一个汉字(两个字节表示一个中文);

GBK:之前的6000+个汉字不够用,于是就有了GBK标准,GBK向下兼容,又增加近20000个汉字

GB18030:对GBK的补充,增加了8000+个少数民族的字,延用至今

 

4、统一:Unicode

 各个国家搞出一套自己 的编码标准,结果谁也不支持谁的编码;当时要想在电脑上显示、输入中文,就要在装一个字符系统,装错了那就乱套了,其他国家亦如是。。

这个时候ISO(国际标准化组织)就站出来,说我制定一套统一的标准,大家按这个标准来,就有了Unicode编码(万国码),那这个Unicode编码肯定需要具备以下特点:

  • 兼容显示、转化各个国家的编码标准

这个特点就尤为重要,因为Unicode出来,我不可能完全按你的Unicode来,那我之前保存在计算机中的GBK文件不就没用了,相当于推倒重来。

 

5、优化:UTF-8、UTF-16

Unicode也向下兼容,但是将原来的8位一个字节 扩展成了16位,也就是说,你在PC中存放纯英文文本时,较之前浪费了一倍的空间,这就有了UTF编码。

UTF(Unicode  Transfer Format):其中UTF8,表示8位传输数据,UTF16就表示任何字符都以16位传输,这里的传输表示的是存到硬盘中的 一种状态,肯定优先选择

utf8。因为在utf8编码下,使用1-4个字节表示一个字符,原来的ASCII还是以8位存在硬盘中,而中文则是以3个字节,也就是24位存放。

 

最后总结:根据自己文档包含的内容来设置编码格式,如只有中文和英文的就可以使用GBK,如果含有其他字符,建议使用utf8。一般使用utf8编码,较为灵活,更不容易

出乱码问题。

posted @ 2020-09-09 11:01  Real丶  阅读(253)  评论(0编辑  收藏  举报