00:00
好。啊,这个比较细心的同学啊,可能看到了我在做这个演示的时候啊,我是不是专门挑了一个李四拼音的呀。你跳个塔吧,走。你这怎么不显示了?发现这个问题了没有,是不是没显示啊,这是不是正常有啊哇五人家接收到了,为什么它不显示了,哦对,忘了为什么不显示了,是因为我把它注释掉了是吧?啊咱把它解开。出现一个冷笑话是不是好?咱们看一下啊。Yeah。好,重启过了啊。走,看到没?是不是乱码,连战是不是没问题呀。
01:02
是不是出乱码了,也就是说我们现在这个响应是不是也出乱码了。Okay。这个问题如何解决?我就不在这儿改了啊,我们来看它这个问题如何解决呢。嗯,咱们这样。我把这。注释掉了啊。我用谁呢,就用它了,这样的话就挨着呢啊。我不往这儿写这个东西了,我写个北京动力。节点。这样,这里再写一个。北京power node.com这域名我写到前面。
02:07
这俩数据好,现在开启服务器,诶九啊。看了父去了。这个我直接刷新。看到没?英文的是不是没问题,中文的是不是乱码了?那这个怎么解决呢?这个怎么解决呢?你需要注意解决响应的乱码。这儿有两个方法。我们看着。Java X。
03:03
Itp是吧。然后。它里边儿。Response。Response里边的方法。它里边没有啊,这里边儿没有,我们就不看了,我们直接看哪呢,它的副类,副类里边有两个方法,一个这叫set character including。一个叫set content。这两个方法,很多人分不清这两个方法。怎么回事?按理说大家看sat。开口Ding我们诶。我们是不是那个。Request里边是不是也有个coding啊?对不对,他是解决什么的,想一想。
04:03
踏实解决。Post。提交时中文乱码问题对不对?那现在这是response response里边也有个set calcul coding,那也就是说它是设置。是不是我们字符编码的,响应的字符编码的对不对。那好,那我们用一下试试。大家需要注意啊,注意什么?你看它这写的有一句话。啊,这儿写了一句话。This method。Has no effect。If if it is cold after get writer什么意思?这个方法没有效果。
05:01
Has no effect。在什么情况下,If it is cold after get writer,如果它被调用,什么时候get writer被调用之后你使用了这个方法,那么?你这个方法是不起作用,什么意思呢?就是说呀,你的这个response。第二,Set character,我们指定utf杠吧。你的这句话,这个设置如果在它调用之后设的。那就不管用了,什么意思,你放到这儿它就不管用了,为什么我这流已经创建好了,流里边的字符就已经字符编码就已经指定过了,你现在再指定晚了。
06:02
必须在你的响应你的这个输出流。创建之前。你设置好字符编码,它才起作用。明白吗?放这儿。当然啦,我们放到这儿以后,他就能把这个乱码问题解决吗?那要按理说是吧,我们从这个方法名称上来看,他应该能解决好,重孝发布过了啊,他应该是能解决的,我们看一下是不是我们想象的。直接刷新走。我的天呐,乱啦乱套啦。是不是?这这这这这怎么回事儿啊?他怎么不起作用啊?你注意啊。这个方法的使用不是这么简单的,不是我们看的。
07:03
这么简单。那还有一个方法,哪个方法呢,在这儿呢。Set content type。Set是设置什么呢?内容类型什么意思呢?我们看一下啊,看一下他的这个说明,The content type of the response,设置内容类型,响应的内容类型,Being send to the client,哎,就是被发送到客户端之前,我设置你的响应的内容类型,诶,If。The response has not been committed yet。呃,如果你的响应还没有被提交之前,那么我设置这个响应的。内容类型。
08:00
The given content type may include the character specific specification这个给出的内容类型。可以,你注意may may may是可以是吧,可以包含字符编码,你指定的字符编码for example,例如。就这样写。你可以这样想。那好了。这里边有个U杠八,那就是说这里边可以设置自编码,那我就要用它了。怎么用呢?看好。Race bos。第二,Set character不能set character set content内容呢,刚才说了test IL。
09:03
Test IL什么就是说我的这种类型啊,这叫什么,这叫M类型。设置响应的M类型,这个M类型什么意思呢?就是你的响应是什么类型的,我的响应是文本。是文本里边的HTML。就是这种类型。其实我们大家应该在很多地方见过类似的啊,类型应该见过什么呃。嗯,见过。Video。然后什么MP4见过这种,这就是什么我的类型是什么视频MP4格式的。
10:03
是吧?啊,还有什么,还有应该有见过这种吗。Image image,然后JPG什么意思,图片是图片里边的哪种啊,JPG格式的对吧,现在这是什么文本,文本里边的。天没?就这种意思啊,然后我可以指定它的字符编码是M数据,你这个格式数据的。字符编码,这个M的字符编码其实就是我们响应的编码,因为这个格式指的谁的,就你的内容啊,你content的类型,所以这个content的类型的字符编码是什么?就是你的response响应的类型。
11:03
所以这个是。设置。你。这样写更好一些,这是解释这个麦啊。其中可以指定M的字符编码G。相应的字符编码。这响应的,或者这样说吧,响应体是响应体的字符编码,OK,行不行呢,我们看一下,我直接刷新走。没问题吧,解决了这个就解决了。哎呀,看来还真是啊,这俩是不是不一样啊,他他他到底是怎么用的呢?
12:05
啊,它是怎么用的。不知道,我们就看文档啊,是不是看这写的什么。他说啊,Set the character,设置字符编码括号。At。Of the response sent to the client。For example to uf杠八。什么意思?继续看。这句话的意思当然很简单,是吧,就是呃,在这个响应被发送到客户端之前,我设置是不是字符编码,谁的M的字符编码,Ma的支编码啊,例如U条杠吧,If the characterco had already been set by。Set content。
13:04
就是如果你的字符编码已经被指定了,通过什么?通过set content type或者是set local这两个方法指定了,那么this method of rights it,它将会覆盖。它将会覆盖它,那什么意思呢。他的意思是这样的,这个方法其实是用于设置你的类型内容,你的M格式的字符编码。那也就是说我还没听明白,诶没听明白,好说看着啊,我给你这样写。这样我给大家这样写啊,看好,我这如果要给你改成ISO8859杠幺,我们大家知道这种编码是不是不支持汉字啊。
14:10
那我们再刷新页面,它是不是又出现乱码了。对不对。好,重新发布过了。我刷新走。没问题吧,出乱码了。那这个出乱码了,看着啊看着,我把这儿给你解开,你再看看。这一次。能不能过来?他是干嘛的,修改了前面的。的恰。我把它改成什么了,U杠八了。看着。走没问题吧,对不对,这是没问题的。包括什么你这样写也是可以的,大家看我这是不是没指定啊,我直接设置的哈。
15:06
再看,再重新发布了。我刷新。走没问题吧,可是你把它注释掉你再看。早。是不行啊,也就是说现在大家应该知道它的用法了,这个东西。就是用于。修改content type这种M类型的掐赛的,他要使用的话,前提是必须得先用它。你不用它直接用它是乱码,它是乱码,这样的话,这两个方法。
16:02
它的区别。你就清楚了,所以一般情况下我们用什么,我们用哪种啊。我们用它。Chat等于。Utf杠八,我们一般用它,不用它。因为你要用它,必须得还得用它,对不对。也就是说我加个注释啊,给大家加个注释。这个方法。的使用前提。诶,前提是。之前必须要先使用。
17:04
是不是这个方法?这个方法。用于。修改。修改。Content。Tap的M。类型。字符编码。他是修改他的M,也就是说他他之前你得先有这个M吗?怎么就有它了。你得先射它呀,所以使用CA coding之前要先用它,必须要先用它。这是这两个方法的区别。
18:03
那么对于这俩啊,我们我们说了这两个,我们就要用它了,对于它呢,就无所谓get set请求无所谓了。这和请求没关系,这就是响应。所以对于响应字符编码,它的解决方案很简单,就这一句话就搞定了。OK了。那么响应乱码的解决方案,哎,我这这两个方法的区别啊,我写的也很清楚了。那么给大家该强调的也强调了。呃,这两个方法都必须在print。这个对象产生之前使用,否则不起作用。另外啊,咱们大家再看他为什么这就。现在好了吧。它好了以后,你看看他为什么这样能正常显示了,是因为你设置的这个内容类型。
19:02
这个东西啊。这个编码它会影响谁?会影响页面的编码查看。你看他这是不是unicode呀。他这是unicode啊,当然现在啊,你注意我们现在用那个版本看的就是unicode,你如果用的是高版本,你能看到直接就是UUTF杠八,但是我们不敢换高版本啊,换了高版高版本是不是这个it watch就不能用了呀,好了。那么关于。我们就说到这儿。
我来说两句