00:00
好,兄弟们大家好,我们将在本小节当中为大家继续讲解字符串相关内容,那么本小节为大家讲解的是字符集与我们的什么呢?贝数据类型啊,首先新建一个文本文件,给大家写一下字符集啊,相关内容很多兄弟们不了解啥叫字符集对不对?字符集字符集简单的说,字符集就是多种字符的集合,多种。多种啊字符的集合就叫做字符集,多种种呢,为什么写不出来呢?啊,写错了,多种字符的集合就是字符集,比如说我要把什么呀,呃,汉字啊,拼音数字啊符号放到一起,那么这进行一个什么呀,字符集,比如说这是一个中文字符集,那我把日文呐英,呃,拼音啊符号放一起,这就是日文字符集,是不是我要把俄文呐,然后拼音呐,数字啊符号翻起,那就是俄文字符集,所以字符集就是多种字符的集合,但是呢,字符集也有分类。
01:05
大家也说了,我刚刚说了,是不是有中文的字符集啊,有日文的字符集,是不是还有俄文的字符集,各种各样的字符集,那这个时候我们就要来了解一下字符集的发展历史。字符级的发展历史,那么大家也知道啊,最早的计算机,最早的计算机它使用的是什么呢?使用的是英文啊,使用的是英文键盘,是不是英文键盘。不仅如此,操作系统中也只支持英文啊,也仅仅支持英文,系统也仅仅支持英文和数字等啊内容等内容,那因为刚开始发明计算机的时候,并没有考虑其他国家,只是什么美国或者英美国家他们自己来使用,所以只是什么考虑到了这个英文和数字符号的一些知识,那么这个时候呢,为了让我们键盘上,或者为了将我们常用的符,呃,这个字符能够在计算机中存储,我们发明了一种不能说我们发明了啊,叫发明了一种叫做美国标准信息交换代码的一种字符集合,叫ascii阿斯克玛阿斯克玛。
02:19
20个码。准确的翻译叫做美国标准信息交换代码,标准信息交换代码这一看美国贝尔信息加法,肯定没其他国家什么事啊,没错,在阿斯格码中,它标准阿斯格玛只有128个,也就是键盘上的字符啊,键盘上的字符包括什么数字啊,字母啊和一些什么的符号,就这些。那么ask斯克码就是这么个东西啊,就是把键盘上的字符、数字和符号用什么呢?用计算机能够识别的方式来进行了一个转换,或者做了一个对照表,其实就是什么呀,计算机就能识别数字呗,目二进制嘛,你给十进制也可以转,对不对?所以就是这些数字,于是乎阿斯克玛scii阿斯克玛,其实它本质上啊,就是一个字符和数字的对照表。
03:18
对照表啊,对照表没问题,比如说我要表示一个小写的A怎么办呢?我们在S的码中用97来表示,我要表示一个什么呢?大写的A怎么办呢?我在阿四克马中用65来表示,我要表示一个零怎么办呢?在阿四克马表中用48来表示,以此类推。比如说我要表示一,那就用49,我要表示一,我就用49,用49来表示,也就说我在计算机中存储个49就相当于一个字符一,我存储一个65就相当于字符A1类推,这就是阿斯克玛的本质。当然我需要大家记住的阿斯克玛还有一些从大,从小A到小C是阿斯克玛97到122的连续字符。然后呢,我们的大A到什么呢?到大Z,它是从65到90的连续字符啊,然后呢,我们的零则是从什么呢?零则是。
04:18
从四十八九得到48到57啊到57到57。这就是我们阿斯格马中最常用的阿斯格马对照关系啊,当然这些大家也看到了,A到Z是连续的,大一到到底是连续的,零到九是连续的,还有一些不连续的什么这个呃一呃,这个比如说我们这个什么符号啊,比如说艾符号啊,井号啊,星号这些东西则属于其他的一些部分,不过没有关系啊,我们工作和学习过程当中需要记住这些就可以了。OK,这就是最早的阿斯玛,但是也发现了,大家也发现了阿斯克玛的问题在哪儿啊,他的问题在哪?仅仅满足英文的使用,别的国家就没得玩了,只能看了是不是?那你只这是英文的话,那我不是只能看了吗?所以说为了解决这个问题,这是这是第一步啊,这是我们发展史中的第一步,为了解决其他国家能够使用的问题来第二步产生了啊,写错了第二步啊,那每一个国家都想使用计算机啊,所以我们就开始研究,或者叫。
05:25
设置叫做语言,就是叫做每种语言的每种语言的字符集合。字符集合,比如说我要写,我要设,设置什么呀,我要设样这个操作系统可以使用中文,那这里面就要使用到什么呀,所有的中文汉字字母、数字和符号,那它是不是比最早的计算机只使用英文数字字符号多了汉字这么个东西是不是啊,那这个时候就产生了新的集合,为了让我们的汉字得以支持,我们国家设置了GB相关字符集啊,GB相关字符集或者叫GB系列吧,系列的字符集其实很多,说啥叫GB啊,国标啊,拼音国标的意思啊,在这里边所谓的什么呢?所谓的GB系列字符集就是支持中文相关的字符集啊,支持中文相关的字符集,中文相关的字符集合在这里边啊,我们的GB字符集为了让中国人可以在计算机上使用,有很多版本,比如说GB2312版本啊,这个是国家比较早发布的一个啊。
06:34
呃,中文字符集大概是在我如果没有记错的话,是八一年的时候发布的啊,八一年的时候发布的GB231字符集,它包含了绝大部分包含包含绝大部分的常用汉字啊常用汉字。那除此之外呢,还有什么呢?还在2001年还是2000年左右的时候,发布了GB1018030啊18030字符集,180318030字符集是扩大了对汉字的支持。
07:09
叫扩大了对汉字的支持。毕竟我们GB2312,它只是支持常用汉字是不是,所以1180305又扩大了对汉字的支持,但是还不是全部的汉字,后来发展出了一个叫做GBK的字符集,当然GDK字符集并不是国家制定的,前两个是国家制定的,GBK字符集是由民间组织制定的,叫做国标扩展字符集,支持全部汉字啊,全部汉字。不能说全部,应该说是绝大部分,这样说更好听一点,但是比上面要多很多了,因为这里边支持了好几万个长用汉字的,那所以我们现在最常见的啊,网络中最常见啊就是GBK字符集了,除此之外,与中文相关的还有一个叫做big的字符集啊,Bigfi的字符集它是什么呢?繁体中文字符集繁体中文字符集。
08:03
这个在什么呀?在香港啊,澳门啊,或者台湾这些地区用的比较多一点,对不对,那也就说哦,原来我们为了让我们国家,为了让我们可以在计算机中使用中文,那么就为我们设计了专门的字符级GB2312,也得到了操作系统的支持啊,GB1018030啊,GDK啊,是不是啊,好,接着往下接着发展,很多学们说到这一步不就完了吗?我们不可以用了吗?但是有问题啊,我们现在的社会不是仅仅局限于某一个国家,而是一个什么呢?而是一个全球性的社会。那么在你做一个网站或者做一个项目的时候,它可能既包含中文也包含英文,那这好说,其实用GB字符集就可以解决嘛,因为毕竟字母和拼音是一样的,对不对?但是你想想,如果这里边是中文和俄文的对照翻译呢?如果是中文、俄文、日文三文的对照翻译呢?你就会发现,哇塞,原来在一个场景当中,或者一个文件当中,可能同时使用多种文件,那但是每一注意每一个文件只能有一种字符集。
09:09
所以说这就涉及到了一个多种语言会用的问题啊,多种语言的会用。语言的混合使用啊,因为有这种需求,所以无论是阿斯克玛最早的,还是我们出来的某一种语言的字符集,都不能满足多种语言会用的这种情况。于是乎大家想的更绝得一招,我们为何不把世界上所有的语言都放到一个大的字符集来呢?于是乎产生了一个想法,什么想法呢?啊,我们要做一个全球性的字符集,那么就产生了万国码啊万国码。这不是玩过马万国码哈,万国码就是1万国家这种这种编码,它的万国码叫做unorde。它是注意是支持叫做所有语言啊,当然你要说这个语言没有出来呢,咱是不知道是不是支持所有语言啊,所有国家语言。
10:09
所有语言,那万国马诞生了,就可以很好的解决我们什么呀,在一个文件当中会用多种语言的情况,是不是,那么万国码它也有什么呀,自己的系列就是utf系列啊,我们最常用的就是UTF系列,Utf系列UTF8UTF什么16,还有什么UTF32。UTF32之类的,这些东西都是我们万国码的不同使用方式,万国码的不同使用方式,然后呢,我们最常用的是哪一个呢?UTF8啊,它是在这里边为我们计算机开发过程当中最常用的UTF8啊,一种使用方式,这些都是一种使一种一种使用方式,使用方式,那其中在这里边最用的就是。
11:03
UT,好吧,也就说你只要用u ti,八字不及实际上是什么呀,全世界的语言都可以在一个文件当中出现的啊。这就是我们的万国嘛,这UTF16和UTF32这样的语言,它什么呀?主要问题在于什么呀?这个长度就是字符编码的长度不一样而已,但是这些东西我们不常用,所以这里边也不用做了介绍啊,简单了解一下,他们是万光玛的一种啊,但是我们在正唱发中是不常用的,介绍完字符集这个发展历史之后,我们要介绍一下。另外一个注意事项,注意事项啊,注意事项什么注意事项呢。就是我们同一样的内容啊,注意事项事项,为什么不是这个事项呢?注意事项啊事项。就是同样的内容在不同的字符集下面所占用的空间是不一样的,同样的内容啊,在不同的字符集的字符集下所占用的存储空间空间啊是不一样的。
12:18
不一样的,当然我们最常用的依然是以汉字为例,以汉字为例,首先呢,我们可以新建一个文件啊,注意看,就是一个普通文本文件好不好,我们写上什么呢?叫做字符集的测试啊,或者叫字符集一吧。好,叫字符集测试吧,测试一。然后呢,在这个文件当中啊,创写成普通文件,我们简简单单的写一个字,行不行就写一个好。好,那这个文件什么字符集呢?注意往下看啊,我们在编码文件上写的现在是UT8字符集,也就是只有一个汉字是UT8字符集,对不对,然后呢,再为大家写第二个文件啊,测试的第二个文件。
13:04
字符集。然后K2。TST啊,TEST2,然后我们在这里边呢,也只写一个好字。也只写一个好字,但是我将其字符集进行修改,点击这块就可以修改,看见没有,点什么GPK行不行,转换为GPK,他问我转换吧,点击转换啊,点击转换好了保存一下,这个时候我就存在了两个文件,每一个文件里面都只有一个字好字,但是这两个文件的字符集我们可以看得出来哈,诶,字符集怎么?完了完了,我我刚刚把整个字符集全给改了,不好意思啊,我刚刚把整个的所有的字符集都给改了,这个是我的错误啊,OK,转换过来之后保存一下啊,这次没问题了,好,点开我们第一个文件啊,第二个文件这两个我单独改一个,把第一个写成U贴吧,第二个改成GDK啊,我刚改的时候不小心都给改了,所以我们应该点这个,我看看reload the film koright应该是点reload啊,Cover可能整个项目都转了。
14:05
好,我。Reload away,好,然后看一下其他的有没有变化。哎,没有变。还利用这个工具还是有点麻烦的啊。用这个编辑工具还是稍微有点麻烦的啊。嗯,字符期没有改变,但是一改的话全给我改了呀,我只想变一个文件的字符集,并不想都改啊,那是不是应该把它提单独提到我们的项目之外啊,提到项目阵内可能会出问题啊,我看看呃,自负机GBK自负机二。重新加载的话,这个硬盘中会新的编码覆盖当前内容。然后呢,如果选择转换的话,那么呃,重写文件。用新的编码是应该点转换,可是他会把整个项目都给我转了,这就很尴尬,我点哪个比较合适呢?
15:04
算了,我先删了吧,行不行,我在外面给大家做测试吧,因为在这里边做测试的话,它会直接影响我们的工程项目本身啊,所以我把它删掉啊,其他没有受影响吧,啊,没有受影响,那在这里边关掉我们的排查,然后呢。来打开之后,我们在这里边为了让大家看得更加清楚,我决定用一个工具帮大家转换一下,行不行,我们打开网络啊,为大家下载一个能够转换编码的工具,拍产品转换比较麻烦,好,我们在里边搜一个otpa啊,Notpa加加是一个什么呢?是一个免费的这个开发工具啊,Windows版的进行安装下一步。下一步。下一步,下一步。桌面上创建图标吧,下一步啊。好了,正在创建,稍等一下好,我们的编辑器安装完成面添加之后呢,我们来在这里边新建一个文件做测试好不好,那在这里边我们为文件中只写一个字,好字,然后呢,当前的字符集请看,默认是u ti发的,所以我直接先保存一份文件行不行?保存到我们的桌面啊,我们的字符集文件夹当中啊,这是我们的UTFUTF8的,所以我直接写UTF8了行不行?
16:22
好,保存一下我们的第一个文件就有了,然后呢,再新建一个文件啊,我们依然只写一个好字,依然只写一个好字,但是这一次字符集我不再使用1T8了,注意看好了,我要把它写成GPK的,怎么写呢?注意看好了,点击编码转换为an SI就可以了。Asi其实就是可以当做GBK字符集来使用啊,因为这里边它没有转,他要是这里边字符集的话,没有直接转的,我看看这里边有中文版。你得点转换啊,转换完了之后再改成我们的GBS12,这样是不会报错的啊,这样是没有问题的,来改一下这是我们的GBGB类型的,保存一下看有没有问题啊,好,没有问题是不是,我建议大家转成n nasi就可以了,就不要做下一步操作了,好这个时候呢,有两个文件,每个文件里边都有一个好字,但是当你打开这个文件夹的时候,你会发现两个人的大小是不一样的,右键我们看GB类型的大小。
17:18
两个字节看见了吗?然后接着来看我们的UT8字符集。看见了吗?三个字节,这就充分证明了我们刚刚的论点,什么论点呢?是同一不同的字符集情况下啊,我们的文字所占用的空间是不一样的,以汉字为例,在GB系列下面,GB字符集啊字符集下面,GB字符集下面它的占用位置是两个字节,两个字节。而我们的UTF-八系列啊,Utf字符集下面字符集它占用的是三个字节,其实也很好理解嘛,因为你UTF系列要区分的字符是不是比较多呀,所以它得什么呀,位数得多点才能把所有的语言都装下去,而G分字符集只有汉字和拼音加上字符,所以它的占用的位置就可以稍微少小一点啊,这就是我们字符集相关的内容好吧。
18:18
好了,字符集相关内容了解完了之后呢,我们继续来接着讲解什么呢?关于贝词数据类型很多,啥叫背词数据类型啊,来。BYDS类似类型。来,点击OK。首先呢,要跟大家说一下贝斯类型呢,它依然不是六大标准数据类型。六大类这个大家应该知道,因为我们学六大类标准数据类型,是不是根本就没讲过这个类型啊,是不是六大类数据类型。它实际上是字符串的一个类型相似啊,与字串与字符串类型相似的一种数据类型,也就是说什么呀,与字符相关啊,与字符相关就是这么一种数据类型。
19:07
当然,这样说的话,大家依然不理解。那么给大家举一个小小的例子来介绍一下关于我们贝斯数据类型好不好,那然后呢,在这里边请注意写上我们的麦下线CODE5下线零八文件,点击OK。好,然后呢,生明一个字符数,这个大家都会,对不对,我们在里边写上T啊,比如说study study等于好好学习。要好好学习,天天向上,好好学习,天天向上好,这是一个什么类型呢?毫无疑问,你打印它的话,会发现它确实是一个字符串类型,这个毫无疑问,咱是不是都知道keep打印一下TOD好,右键运行一遍,它是一个字符串类型,这没什么好说的,是不是词句类型出来了,那到底什么是我们的?
20:08
贝斯数据类型呢?下面给大家讲解一下我们计算机字符串的使用原理啊,计算机叫做计算机存储,或者是使用字符串的过程。正常情况下,你写一个字符串,计算机是不会识别的,就是啊,计算机不会识别。这很正常,因为计算机是不是只认,说白了本质上它只认识二进制,或者说只认识数字,十进制也好,他也认识啊,其实就是只认识数字呗,是不是?所以呢,我们要想使用字符串,就必须将字符串,必须将字符串转换为机器或者叫计算机能够识别的什么呢?数据,其实说白了就是数字类型呗,是不是,其实就是数字类型啊,那然后才能够使用,然后才能使用,也就是说我们的字符串真正交给计算机的时候,计算机第一步是拿到字符串,第二步转换成他认识的格式,第三步才能使用这个字符串数据,比如说中间是不是有一个转换,是不是,那么被次类型哪来的呢?注意看好了,其实你前面第一个它是字符串类型。
21:24
字符串,字符串类型,而在这里边我们的第二步产生的中间转换数据就是贝类型。BYS啊,BYTS被词类型,也就是说白了被词类型是计算机把字符串转换成计算机能够识别的一种类型的中间产物,对不对?这样一来的就来到了,就就得到了我们贝词类型,那我们如何获取贝测类型呢?生命字符串感觉都会了是不是?那我如何获取BYS类型呢?DS类型。那么大家刚刚也知道了啊,我们的配次类型是做计算机在处理字符串的中间产物,这个过程是谁来完成的呢?是计算机来转换的,对不对?我们可以手动转换的,来studioy study study。
22:16
啊,等于好好学习。好好学习啊,好好学习,写错了,好好学习好,我们想自己得到被测类型怎么办呢?好了,Result等于。你不是字符串吗?Study study点,你想把一个字符串转换成我们的被词类型,能够被计算机识别,直接来一个函数Co啊,En codco就可以了。这个时候如果我们打印这个result,你会发现它的类型其实就是被词类型。Result来右键运行一遍程序,我们会发现第二次打印的前面这个东西大家看不懂啊,其实就是被测类型的一个显示结果,后面类型是不是被测类型了,充分证明了我们刚刚的说法是不是正确的,是不是,哎,所以获取被词类型的时候呢,可以通过字符串转换而来啊,通过字符串转换而来,转换而来。
23:17
当然很多兄说,那我能不能直接声明贝词类型啊,哎,能,你把下面这个拿过来的话,你确实可以当做声明贝词类型,看好了,声明贝词类型,声明BYTS被测类型,BYTSBYTS被测类型能不能声明呢?能啊,然后我们在这里边啊,Studyy直接写上studyb类型行不行?等于你把这个字符串拿过来没问题,这是个base类型,而且呢,你还可以用它print我们的。方框啊,打印一下我们的这个操作啊,Study YB同时可以查看它的类型,Type也确实是studyb类型,也确实是一个贝斯类型。
24:00
你看是不是这两个是一样的,但是很可惜这些东西全是字符集的编码,也就说我们刚刚说了,字符集里边是不是每一个人都有个编号啊,这就是它的编码的什么呀?表示方式,或者叫16进制表示方式啊,这个斜杠表示编码,X表示16进制,E5其实就是它的编号,你会发现这里面数字都后面这个是不是都没有超过ABCDEFG没那么远啊,就是零到九,A到F呗,是不是啊,就这个范围,所以它使用16进制表示的,你不可能记得住这么多编码的,别说你,我也记不住啊,我也不知道哪个人能全记住这些汉字的编码的。当然你要写的不是汉字还好说,比如说我写一个非汉字的,那倒省事了。ST,比如说我们写一个数字吧,Number等于啊,B引号里边直接来写1234,这样是允许来写的啊,这样允许来写的,你如果打印它的话,它也是一个背词类型啊,但你这样写的话,它没什么大的意义啊。ST,呃,不是写一个nu。然后TY p nu来右键运行一遍,右键运行一遍,你看它确实是个被测类型,但是它没什么意义。
25:08
是不是没什么意思,上面还有特定的意义,能代表一个汉字,你下面根本不知道啥东西,所以这种写法我们并不推荐大家来用,我们一般就是在什么呢?转换的时候使用base类型,或者某些操作中要求必须给base类型,我们才会进行操作,那么这里边就是涉及到最重要的问题,什么问题呢?被词类型和字符串的转换问题,被词类型和s ting类型的相互转换。因为这是它俩互相转换最长,这它俩最长的使用啊范围啊,就两个互相转换着来用啊,因为你要写被词类型的话,你不可能写出来,那我写一个字符,我转过来是不是就可以了,哎,这里边涉及到两个函数,哪两个函数呢?一个是字符串,点Co en Co括啊这扩它的作用是将字符串。
26:00
编码乘base类型,BYS。还有第二个,第二个是什么呢?Base类型写上啊,Bys base.deord de code啊,Deord,它的作用是什么呢?将被词类型by by base类型解码乘我们的字符串类型。比如他俩之间互相转换,用的就是这两个东西啊,那怎么来玩呢?来我们写一个字符串行不行,首先呢,写一个字符串,比如说写上一个这个go home嘛,Go home嘛,回家行不行,等于高高兴兴回家去高高。高高兴兴。回家了,去回家去好,这是一个字符串类型,我想得到一个啊,这是看好了,这是注释啊,这是s string字符串类型。我想得到一个被类型,那么我们就写上go home。
27:01
G o home go home byt啊,行不行,或者叫BY吧,就等于go home,点注意它是不是用编码呀啊COD。这个时候得到的结果。就是一个什么类型呢?就是一个byts base类型,我先来看一下打印我们的智啊打印的go。Home by,来看一下类型py go home by,你可以发现它真的是一个,看见没有,是不是在这字符串类行,你如果不相信的话,或者前面有影响的话,你可以把前面注释掉啊,这都是给大家了解的,来123注释掉,往后一拉。好拉到我们的这个位置。呃,到到到到这类型吧,好来右键运行一遍,你看一下就剩一个了,说贝词类型啊,贝词类型,如果你希望把贝词类型再转回字符串怎么办呢?OK,那我们的result等于。
28:00
Go home by是不是被类型点called?然后干什么事呢?OK,在这里边再次打印我们的result就可以了啊,Result和它的类型type type我们的result。那这个时候得到的又是一个字符串类型,右键运行一遍,看见吗?是不是又回到字符串类型了,所以这里边其实就是转换过程,一个是这里边叫做什么呀,这叫做编码啊,编码下面叫做解码啊,解码就是就OK了,这样一来的话,你要获取贝斯类型,是不是显示字符串一转就可以了,哎,其实我们把被字符串类型转换成贝词类型就是将什么呀?就是将计算机本身应该自动完成的事情,我们手动把它完成了而已啊,所以我们贝斯类型的还是比较的少啊,还是比较少。好了,那到现在为止,我们的贝斯类型也就讲解完毕了,大家如果看不懂这个编码的话,我可以给大家一个小小的提示哦,由于我们的字符集现在是UTM8字符集,所以这里边三个编码代表一个汉字,不信你自己数一数好不?
29:05
好了,如果是GPK的话就两个了。好了,那么本小节到此结束,我们的字符串到现在也就讲解完毕了,我们将在下一章为大家讲解列表相关的内容。
我来说两句