00:00
好,哎呀,刚才我们。费了半天劲说这个禁制,其实这东西我也挺不愿意说的,说这种理论的话,其实就是很烦人,有可能你听的时候你也会觉得这东西很烦,不愿意去,不愿意去去听这个东西,但是其实我们学计算机的话,很多的时候,呃,你像这种东西他是可说可不说的,但是作为我来讲,我去讲课的时候,我希望我愿意把这些东西用一种比较浅显,比较易懂的方式去告诉你,那为什么呢?就是我希望我给你讲的每一个知识,你能应该是能去理解,能去了解到他的来龙去脉的,那这样对你整个一个职业发展也会有好处,所以基本上我给你讲的这些东西,大部分都是你用得上的,现在用不上,以后也用得上。实际开发中用不上,但你学习的时候也肯定能用得上,所以我希望你不要错过我给你讲的每一个知识点,一定要自己去梳理,自己去总结啊,好好去整理整理啊,学习学习这个知识点,那接下来我们就要回到我们的正题上啊,回到我们正题上,那这里边我们就要说一个问题啊,我直接在这写了,说一个什么问题呢?说一个我们叫做一个字符编码的问题,这两个东西是在一起的啊,字符编码。
01:21
自助于码是什么东西呢?我们想一下,刚才我们提到一点,我们的所有数据在我们计算机中存储,它都要转换成什么二进制,所有数据,一张图片,一首MP3,哎,一段文字,什么都得转换成一个二进制,那包括我们写的这网页是不是也得转成二进制,甚至说比如说我写一个,我写两个字,我写个什么呢?哎,我写一个,哎,我写一个中国,哎,我写一个中国啊,别写中国了,写我自己的名字吧,哎,我写我的名字,李立超。那现在我这三个字我要存到计算机里,那计算机能不能把这三个字给我存起来,哎很明显不行,我们说了它里边只能存都是那种I bet嘛,对吧,只能存数据零和一,它不可能把我的名字直接存进去,所以这个时候我的这个名字它在存储的时候,它也要进行一个什么呢?诶进行一个转换,哎,那可能我这个名字最后转换完了就存成什么呢?哎,可能就存成了一个,诶1100,诶0011,诶0110,当然这个是我瞎编的啊,这是瞎编的,仅供参考啊,所以像我的这个名字存进去以后,是应该以这种格式存的,那为什么我们打开的时候能看到这三个字呢?哎,所以注意打开的时候,它实际上它做了一个反向操作,他把这编码转换成了什么呢?转成了李立超这三个字,就这么简单啊,就这么简单,所以这个时候注意我们来说一下。
02:54
我们的所有数据,所有数据在我们这个计算机中存储时都是什么呢?都是以二进制形式形式存储,都是以二进制形式存储的那。
03:11
文字,我们的文字也不例外。所以诶一段文字在我们这个存储到这个计算机啊,存储到我们这个内存中时,都需要什么呢?都需要转换为我们这个二进制编码,当我们读取诶打开诶读取。当。这我是点了一个什么玩意儿,我们来看一下啊,给取消掉,当我们读取。读取这段文字时,计算机它会将我们这个编码,诶干嘛呢,转换为我们这个字符啊,字符供我们阅读,所以它是有这么一个过程的,这个过程当然都是由我们这些编辑器啊,还是由我们的程其他程序啊,它自动完成的啊,它会把你的字符转换成这个数字,1010这种二进制字符,这就不是二进制比较字符了,是吧?二进制编码,然后你在读的时候再把二进制编码转换成我的这个字符,就这么简单,那这里面就涉及到两个过程,一个过程我们叫什么呢?叫做编码。
04:38
还有一个过程,我们叫什么呢?叫解码,解码什么叫编码,将我这个字符转换,转换为我们这个二进制码的过程称为什么呢?称为编码,哎,也就是说这个过程把李超转换成这个数字,这个过程称为编码啊,称为编码,然后解码呢,将我们这个字符,诶,将我们这个二进制码。
05:11
转换为我们这个字符的过程称为什么呢?称为这个解码啊,称为解码,所以把这1010这个转换成李超这个过程叫做一个解码,很简单,这个理解不了啊,回家找个那种过去那种,当然不一定是过去,现在也有是吧,那种电视剧,什么电视剧啊,就那种。过去的那种谍战片啊,你看谍战片里面经常是是吧,哎哎,我党的这个地下党潜伏在这种敌战区域,哎,我们要跟上级,跟沿岸,我们是不是要联系啊,怎么联系啊,哎,我们通过发电报,那发电报怎么发呀,你不能漏个大喇叭,你喊吧,毛主席蒋介石要打你去了,你不能这么说吧,那么说全世界都知道了,对吧,那这个时候我们就需要对我们这个电报进行加密啊,加密加密完了以后,延安毛主席收到这个信以后,他在对这个信进行解密,这样是不是才能传递那个这个信息啊,哎,所以你看这个,哎,经常是我们这个敌人的这个密码本是吧,经常被我们。
06:15
获取到,获取到以后就导致敌人那个信息是不是全都被我们破解了,哎,所以跟那个过程一样,发的时候我要进行加密,也就是编码,收的时候要进行解密,也就是解码是这么一个东西,但是这个时候问题就来了,我编码的时候,我把李立超这三个字转换成这个东西了,那我解码的时候,这东西是不是应该也解成这个李超这三个字,哎,那问题又来了,那我们编码和解码。他是不是需要遵循一定的规则?哎,这个规则我们叫做一个字符集,英文叫做叉set啊,叉赛叫做一个字符集,什么叫字符集,哎,我们这个什么呢?哎,我们这个编码和我们解码所采用的一个规则,哎,称为字符集啊,称为字符集,这就相当于什么,相当于你看那种谍战片里边那个密码本一样,这个东西就算是一个字符集,那字符集什么作用,就是指定规则的啊,就是那种规则,比如说。
07:18
A是一,诶二是一零,这个B是一零是吧?C是011是吧?D是什么什么东西,它会有一个规则,可能就是这东西很好想象,就是一个字符对应一个编码,可能A就是一个什么呀,对应一个诶B呢,对应一个一零,C对应一个一,B对应一个100,大概这么个意思,它会有一个编码的一个规则,去设置一个东西,然后你发的时候,你要发A,你就发一,对吧,你收到一个一,那你就知道你收到的是A,它会有一个对应,那么一个这么一个规则叫一个字符集,那这个时候我们就要说到一个问题叫什么呢?叫做这个乱码问题,乱码问题什么叫乱码问题呢?哎,如果什么呢?如果我们这个编码和解码所采用的这个字符节不同,字符集不同,就会什么呢,就会出现我们这个乱码的一个问题啊,就会出现这个乱码问题,你拿这个共产党这个密码本。
08:18
加密你用这个国民党那个密码本解密能解开吗?解不开,那解完了肯定全都是错误信息,要不然就是全都乱的,要不然根本就读不出来这么一个东西,所以这个时候加密和解密你所采用的这个密码本必须得一样,那同理编码和解码你所采用的字符集也必须得一样,这样是不是才不会出现这个乱码问题啊?哎,那问题就来了,那我们有多少个字数集啊?哎,我们简单说一下我们这个常见的一个字符集,常见字负集有什么呢?哎,比如说有什么isk two,还有什么呢?还有什么ISO,诶8859杠幺,还有什么呢?还有什么我们的GB 2312,还有我们的GB。
09:04
诶,GBK,还有我们叫做一个UTF杠八啊,这些编码啊,这些字符集,那这里给我们来简单解释一下啊,阿斯科兔最最早的啊,阿斯克two,阿斯科A就表示America,就是什么呀,美国的一个标准码,也就说这个东西是最早美国人去设计的,美国人就设计这个标准码,一共一,就是因为他要转成二进制嘛,所以他用什么呢?用七位表示,也说1010,一共是七个啊,一共是七个美国人一合计是吧,我26个字母,一共26个,诶我还有大写小写,那我就乘以个二变成52个,再加上我各种符号,那七位正合式啊七位,七位转换成一共多少个数,多少个符号啊,哎,七位就是就是128个啊,180个,每个一算一百八个正和式,还有负裕呢,是吧,还有负位呢,正和适,于是他就采取了七位,但是问题是你世界上不仅仅只有英语国家,对吧,你不是只有美国,英国,是不是还有其他国家呢?所以这个编码进一步发展到哪了?
10:04
可能到了欧洲,欧洲的话一看,哎呀,这德国这个字儿啊,法国的字儿啊,它是不是很多符号更多啊,可能稍微更复杂一点,那128个还够不够用了,不够用了,所以欧洲人开始对ask to进行扩充,扩充到多少,扩充它也好不到哪去,它扩充什么呢?扩充八位。也就是说零和一一共是八个,多了一位数量就是乘以二,所以就从一百二十八变成了256,所以ISO8859杠幺,他是欧洲人面一看就ISO都是欧洲的,对吧,二百五六个啊,哎,56个欧洲人一看干嘛呀,也够用了,完事就用吧,对吧?但是问题来了。你是够用了,这世界上是不是还有其他国家的,什么埃及呀,什么这种沙特阿拉伯呀,是不是还有这种阿拉伯国家呀,啊,那他们同样也要对我们这个。进行扩充,也要对这个阿斯科兔进行扩充,才能满足他们的需要,那同样你往亚洲传还有什么呀,有日本有韩国是不是都得用啊,哎,最可气的传到中国了,好,中国百家姓就好几百个,你这玩意儿够不够用啊,不够用,所以中国依然会对这个阿ask斯科进行扩充啊,扩充到什么呢?中国我们叫做GB2312GB2312GB就是我们国标的拼音的缩写,哥国国波幺标拼写啊G标三二,这个是我们中国的字符集啊,国内使用的字符集,那GBK呢,也是中国的K表示扩展,表示说GBK对这个GB进行扩展,也就说它比它的东西还要还要多一些啊,还要多一些,所以啊,你会发现我们这个字符集有多少太多了,你看啊编码这你点开编码资出去。
11:52
你这随便一点,这还不是,这应该还不是所有的,只是一些比较常见的,你看是不是有这么多的字数起啊,哎,有这么多字数起那。
12:01
我们用哪个呀?我们用哪个呀?哎,当然你说如果我们的项目只在中国用的话,那我们其实用GB23121点问题都没有啊,你就直接用GP链一点问题没有,但是实际上就现在来讲的话,我们的项目越来越越来越国际化了,所以我们做一个项目,我们总是希望它在全世界的范围内都可以正常使用,而不是仅仅限于中国地区,那这个时候我们要用什么?哎,问题来了,你用这个。美国人能用,英国人能用。你用这个欧洲人能用,但是美国人也能用是吧,就是这编码你用哪个美国人都能用,他不怕是吧?因为所有的东西都是兼容阿克鲁对吧,然后你用它中国人能用,但是可能阿拉伯日本可能用不了了,对吧?所以你会发现每一种编码是不是都会有它的一个局限呀,诶,每一种编码都会有它的一个局限,所以这个时候我们就出现了一种编码,叫做UQ的编码,或者在这儿你就暂时理解成叫UTF杠八,这个编码叫什么呢?叫万国码,叫万国码什么意思,它几乎包含了,不是几乎了啊,它就是包含了我们世界上所有的什么呢?包含了我们世界上所有的语言,所有的符号,像什么尼非洲某个部落有点图腾,有点符号,它里边干嘛呢?
13:17
全有是吧,中国什么色子呀,易经啊,小骷髅啊,这边全有啊,各种各样的符号,什么牌酒,对吧?哎,这里边全都包含啊,全都包含,所以叫万国码,就是包含了世界上全部的一个语言,它支持任何一种语言啊,当然就是换句话说我们应该用哪个,那我们开发程序的时候,那最好的选择就是什么呀,UTF-UTF杠八,那这样的话,你的你所编写的网页就可以在全世界的范围之内通行使用啊,所以以后我们写这个网页我们全都用,无论是网页也好,还是代码也好,我们全都会使用这个UTF杠八,当然有一些公司可能为了优化会用到GB232,但是你要知道,现在我们全都用这个。
14:04
U ti杠八,哎,换句话说,只要你给地球人做项目啊,你这个项目是给地球人做的,不是给外星人做的,U ti杠八都能帮你解决。那我们现在用的是什么?哎,你看一下你的编辑器右下角。哎,UTF杠八,你就说现在我们默认情况下用的都是UTF杠八,也就说只要是个正常的编辑器都是UTF杠八,但是像不正常的微软的那个记事本,它就不用UTF杠八,他可能用的就是我们这个GB2312去编码了,所以这个时候你就注意了,我们一般也不用去改啊,不用去改,你要改的话在编码这可以去改啊,但是我就不改了啊,我就不改了,你改的时候最好里边没有东西去改,你这么一改全都乱码了啊,不要动那个编码,你就知道我们。哎,在我们这个开发时,我们使用的这个字符集,哎,都是我们这个UTF杠八,记住这个就完事啊,记住这个完事好了,接下来我们再看一下,我们说了半天跟我们网页有什么关系啊啊啊,当然有关系,我们写网页也是用UTF杠八去写的,但是问题来了,你看我们现在这个网页里边有没有体现出我的这个网页是UTF杠八的。
15:25
有没有体现出来,哎,没有体现出我这个网页的一个字符编码,这要放到以前很容易出现乱码问题,但是现在浏览器都比较智能了,轻易不会乱码,所以现在的话其实写不也都行,但是严谨起见,我们最好还是需要告诉计算机什么呢?诶我们的这个网页的一个字符集,避免乱码问题,那怎么告诉怎么告诉,诶在这里边我们有一个标签叫做me。Meta是一个字结束标签啊,它需要写到这个hide里啊,需要写到hide里,因为这个数据你也不需要显示,它只是帮助浏览器去解析数解析网页的,所以不需要显示,所以就写到headd里啊,我们可以通过什么呢?我们可以通过我们这个Meta标签来设置我们这个网页中的什么呢?哎,网页的一个字符集啊,避免什么呢?避免我们这个乱码问题啊,避免乱码问题那怎么写在Meta里面,我们需要加一个属性,叫做一个char set叉set叉set叉就是字符,Set就是集合的意思,就表示字符集叉set,注意属性值加引号等于一个utf杠八写上以后跟我们之前其实没有什么太大的区别,但是其实呢,就是有效的避免一些不太好的。
16:54
战器会让我们这出现这个乱码问题,但是这儿我们什么也没写,你看不出区别,但你看这儿有没有乱码啊,没有乱码啊,没有乱码,因为但是这个现在你指不指都都没有,但是可能过去那种老版本浏览器就会存在这些问题,我就不演示了啊,所以这东西呢,虽然现在看上去没什么用,但是呢,你也要给他写上,避免一些其他浏览器出现这种兼容性的问题,大家注意前面这些东西都是固定的,但是这UTF杠八是不是固定的,不是啊,一定注意,这可不是瞎写的,这儿得要求什么跟这儿是。
17:28
一样的,如果不一样,你这换一个,我写一个什么呢?我写一个GB2312,这表示什么意思,这表示说你在告诉你的浏览器,我的网页是用GB2312进行编码的,而实际是什么,实际是UTF杠八,那这个时候浏览器就会出现什么,就会出现。断码了,因为编码不一样了,所以注意这儿可不是瞎写的,这儿似的东西跟这儿得是一样的,所以我们这儿应该写成UTF杠八,这样才能避免我们这个乱码的问题。
18:03
刷新就没问题了啊好,这样我们就有了一个网页的一个最最最最标准的一个结构,比之前那些都标准,那待会儿我再给你们总结一下,那接下来你先试一下这个Meta标签,我先来填一下。
我来说两句