00:00
好,呃,这呢,我们就把这个叉型这个变量呢,基本使用呢,给大家就说清楚了啊,然后这里边呢,其实涉的涉及到一个叫做字符集的问题啊,刚才呢,像这个unicode,它其实是一种字符的编码集,呃,这个呢,要展开说的话呢,这个还正经得说一点时间的,而且呢,刚开始一上来我们就把这个字符集详细的说清楚呢,大家可能也会晕啊,所以说呢,详细的关于字符集的问题,我们放到后面的章节,哎,我们讲到这个第二大部分,这里边有个IO流,哎讲到IO流的时候呢,我们涉及到转换流,我们再详细的给大家去讲一下这个字符集的问题,然后现在的话呢,只是先大概的给大家去说一下。啊,就是大家现在有这样的一个意识就可以了啊好,那我们来说一下这个字符级的问题,大家知道咱们在计算机的底层呢,都是二进制的,这应该是一个常识,那就意味着呢,我们现在咱们这里边写的所有的这些代码,包括这里边的每一个汉字,在底层存的时候全都是010101这样二进制的方式啊,那这里边就会有一个对应关系,我们底层存储,不管是内存也好,还是你的硬盘也好啊,都是0101,但是我们现在看到的这些呢,就是丰富多彩的啊,或者有具体含义的一个字符啊,或者是汉字,这都算字符了,在这里边就应该有一个对应关系,比如说哎,我这呢,在咱们的这个代码中,我写了一个小A,那你在这个底层小A呢,换算成0101,因为0101其实都是一些数值了啊,到底让它等于是哪个数,比如说让它是五,这我随便举了个例子啊,然后那我让小B呢?哎,我可以考虑让它是六。
01:44
那这里边中国的中呢啊,你可以也得考虑让它是一个值,然后把这个值哎,你用二进制呢去表示,当我们去打开一个文件的时候,相当于呢,就是把这个数值呢,给它按照某一种字符集的方式呢,给它再还原成我们,诶这个能够呈现出来的一个小A。
02:05
哎,是这样子的啊,那么我们如何把我们写的这个代码里边这些字符对应成了一个二进制,然后怎么把这个二进制再还原回来,中间这个对应关系啊,像这个大家学数学的话呢,通常我们左边叫自变量,通过一种对应法则到因变量了,是吧?这个以前上上高中啊,初中讲过这种映射关系哈,其实这里边呢,你也可以这样去理解,中间这个呢,不能叫对应法则了,哎,中间呢,就叫做字符集啊,就叫字符集,那么这个字符集呢,最简单的或者最初的一个字符集啊,就是这个叫ask啊,这个这个编码集啊,啊这个呢,也是一个缩写了啊,早上读单词的时候,大家这不也读它了,就是因为计算机本身呢,咱们知道也是主体是从美国这块兴起的啊啊美国呢,人家用的是英语啊,英语的话呢,那不就是26个英文大小写加上一些常用的这个这乘以个二是吧,大小写加上一些常用的标点符号,其实他们呢没有多少个字符。
03:06
啊,不像咱们汉字哈,咱们汉字这一个就是一个中国可能那这好几千往传用的可能有好几千的汉字了啊,但是对于他们来讲,其实都是一些拼音组合了,基本呢,就是abcd的大小写,呃量是吧,然后呢,对于当最初的这个美国来讲的话呢,哎,他这里边涉及到把这些字符呢,给它存储对应到一个这个这个数值上,哎,他呢,就有了一个叫SK这样的一个字符集啊,那刚才我们说了26乘以二再加上一个标点符号,其实没多少个,所以说呢,它其实总共呢这个,呃,128个其实就足够它盛得下了啊,但128个它没有用这个数哈,它其实用的是八个位啊,八个位呢,我们知道其实就相当于一个字节一样啊,一共是有256种情况的啊,但是他其实这个用不了这么多种情况啊,他其实128种情况,他就足够他去用了啊,那在这个ask ask啊,或者叫ask这个码。
04:06
当中,哎,比如说他给这个小A,它其实分配的呢是97啊,然后大小B呢,那就顺顺应的往后后延就可以了啊,给这个大A呢,哎,它负的呢是65,哎,然后适应的往后后延就可以了啊这个只是先说明一下啊,哎,然后这呢够美国人用啊,英国人呢,就是凡是用英语的,基本上他们都用这个字幅机就可以了,那后来呢,这个互联网的话呢,一下子全面全灭这个全世界各地了,每个国家呢,都想用这个计算机,但是呢,每个国家的这个这个语言文字那差距太大了啊,你别说别的国家,就光说中国啊,那你256个汉字,256种情况,一个汉字分配一个情况,这都不够,哎,所以呢,这时候就亟待的需要使用更大的字符集啊,那这个字符集呢,那就很多了啊,每一个国家的语言都会有一个他们自己的字符集,但是当你这些各个国家。
05:06
都用自己的时候呢,你发现这个语言跟语言之间呢,就没法交流了,你比如说呃,一个英语系里边,我这发了一个小A,我这个小A呢,其实是代表97了,结果传到另外一个,比如说法语里边呢,它这个呢,又成了一个法语里边很很诡异的一个一个一个字符了,然后本来有意义的一段文字,到这呢,其实就成为乱码了啊,那就不行,所以这时候呢,我们亟待的需要使用一个字符集,能够把全世界啊这些语言呢都能够统一起来,把每一个这个各个国家的每一个字符呢都分配一个数啊,那这呢就提到了另外的一种,呃,这有UNICODE1种,呃这个编码,但unicode呢也有它具体的问题哈,呃,这里边写到它的问题,呃,详细的我就先不展开去说了,诶然后呢,真正落地开始实施的呢,实际上是这种叫UTF杠八,它属于UN code具体一种实现方式了啊这呢就是一种更大范围的一个字符集,那我们回头呢,其实写代码呢都会使用它,但咱们现在呢。
06:06
那其实大家其实还没有碰到这个问题是吧,一会呢,我可以给大家举个例子啊,那以后呢,咱们后边用eclipse的时候呢,就会去设置这个字符集,那所有国家的语言呢,咱们写代码啊,或者做传输的时候都用这种字符集,这样就没有问题了,诶你左边呢,你发配发了一个这个英文的一个A,然后呢,他呃这个呢,其实也是97哈,然后到另外一个国家语言的这个体系当中呢,诶,他也用这个u ti杠八呃去读啊,它翻译出来的还是这个小A,这样呢,大家就不会出现乱码的问题了啊是这样的一个情况啊,那详细的关于这个字符集的情况呢,大家你可以看我这课件里给你提供的这个啊一个文档啊,诶这个字符编码。啊,就是你要有兴趣的话就看啊,实际上呢,大家先没有必要去研究它写,那我呢,呃,可以给大家去举一个简单的例子啊,比如说嗯,我这呢去新建一个吧,比如说D02啊,哎,我这建一个叫做DEMO啊。
07:08
我叫car吧。这个字符这个是E,应该是E是吧,CTRLCCTRLS啊,CTRL在这啊诶。在这CTRLV一下,好,大家看这啊,这是不是有个编码啊,哎,我们之前呢,给大家说说不要动啊,就用这个就可以了。啊,这是一种标准的方式,那这个呢,其实在咱们这个中文的操作系统下呢,它代表的其实就是只识别咱们中文的啊,这里边有个字符集叫做JBK啊,这也是一个编码级啊,就是这个呢,默认的其实相当于它就是JBK了,但是我现在不用JBK,我呢用UTF杠八,好,我保存一下,哎,相当于我们这里边的每一个字符呢,保存到这个硬盘当中都是用的UTF杠八的方式啊啊行,保存完以后,我现在在这里边有个hello word我再写一个,嗯,这个你好,哎,中国保存一下。
08:14
这里边呢,我们有一些中文行CTRLS,以后我们在这个命令行,现在呢,我来做一个执行啊Java c这呢,先是做一个编译好回车编译通过好执行。好。哎,大家看到了,这时候是不是乱码啊,对它为什么会出现乱码呢?这是跟我们这个这个命令行有关系哈,这个命令行的话呢,它默认的呢,它是使用的JBK的方式进行解析的,但是咱们刚才这个存的时候呢,不是拿的JBK的方式存的,所以呢,这块出现问题了。
09:03
能理解这个过程吧,对,你看简单说一下啊,就是我们这个数据,现在大家看到这个数据,我们现在呢,我点了一下保存,是不是就把它存到这个硬盘中的一个文件里了,对,这是呢,我们用的是UTF杠八,诶那这里边你像这个中国的中,它下边呢,对应的一个数值,我这个随便举个例子啊,比如说就是1234,它代表的是这个数,但是现在呢,我们用这个命令行,用它呢去读的时候,这是把这个文件呢读进来了,读进来的时候呢,它用的是JBKJBK呢,它里边去识别这个1234的时候,发现找不到这个1234,所以就会出现一些乱码了。呃,那要想不出现证码怎么办呢?对,就必须要保证这个你写入的时候跟这个读的时候,它俩必须要用一个啊,必须要用一个,这就要统一啊,那这块呢,咱们就不去说,其实在这个命令行后边大家加一个指定的一个编码集也可以让他用用ta干法也行啊,这个没必要大家去记那个了,那我们把它改了,我把它呢改成GBK就可以了啊,那改的话呢,这个嗯,在这的话呢,用它好像是只能是另存为了啊,我另存为的时候呢,这个你调成NSI。
10:25
啊,这个这个是叫美国什么标准的一种什么方式,就在咱们中文系统下,它就是JDK啊呃,我给它另存为它,然后保存把刚才那个覆盖一下,其实我这呢,就是一个JBK了。啊,已经保存过了啊,然后我们再重来先编译,然后再运行,你看就好了,哎这个呢,等到后边呢,我们在诶还会说这个字符集的问题啊,大家呢,先这块有一个这样的印象啊,因为毕竟我们现在在讲这个字符,哎你知道呢,有一个字符集的一个情况啊就可以了啊哎这呢相当于是一个更大范围一个表,把这个每一个呃字符对应的这个UN扣的这个值啊列出来了,这个大家就没必要去看了啊,只是我们演示了一下而已。
我来说两句