下面是Servlet中操纵response标的目的页面输出中文时发生乱码的问题,感乐趣的可以看一下。

方式/步调
- 1
起首我们来建立一个类名为OutServlet的类,接下来让它担当HttpServelt类,然后重写doGet和doPost的方式。
- 2
然后我们在web.xml设置装备摆设OutServlet的相关的信息,好比类的全路径和拜候路径。
- 3
接下来我们在OutServlet的doGet方式中操纵response对象挪用getOutputStream()获取一个OutputStream的对象。
然后我们来挪用OutpuStream对象的write()方式输出一个字节数组,这个字节数组由中文字符串转化得来。
- 4
操纵OutputStream这种体例输出中文有可能发生乱码。注重是有可能,而不是必然发生乱码。
本家儿如果看浏览器打开文件的编码体例和文件的默认编码体例是否一样,编码一致它就不会发生乱码,纷歧致就会发生乱码。
好比下面的两个成果:利用火狐浏览器拜候发生乱码,利用360浏览器不会乱码。(注重浏览器分歧的版本可能默认的编码体例可能纷歧样,所以你用同样的浏览器,获得的成果纷歧心猿意马一致;再加上浏览器也是可以本身设置编码体例的)
我利用的360平安浏览器,因为它有一个主动检测的功能,所以无论你的文件是GBK仍是UTF-8的编码体例,它城市和你的文件一致,也就不会呈现乱码。(当然这和版本也有关)
- 5
为了让它实现无论用什么浏览器都不会乱码,我们来设置浏览器打开这个文件的编码体例;然后设置文件的编码体例。让两者的编码体例一致,它就不会乱码了。
- 6
添加了上面的代码之后,再启动办事器,然后用之前乱码的火狐浏览器拜候,可以发现这一次利用火狐也不乱码了。
字符流输出
- 1
别的一种标的目的页面输出体例是字符流输出。
resp.getWriter().write("帅得不敷较着");
- 2
字符流输出若是不设置编码体例,必然会乱码。
- 3
因为getWriter()获得的是一个PrintWriter,它有一个缓冲区,缓冲区的默认编码是ISO-8859-1 这种编码是不撑持中文的,所以必乱码。
我们的话可以经由过程设置缓冲区编码和设置浏览器打开编码,让它们两个编码一致,如许就可以解决中文乱码了。
resp.setCharacterEncoding("utf-8");
resp.setHeader("Content-Type", "text/html;charset=UTF-8");
- 4
如下图所示当编码一致的时辰,就不会呈现乱码了。
别的
resp.setCharacterEncoding("utf-8");
resp.setHeader("Content-Type", "text/html;charset=UTF-8");
有一个简写体例,
resp.setContentType("text/html;charset=UTF-8");//一句等价于上面两句,所以我们用简写体例就可以了。
来源:百闻(微信/QQ号:9397569),转载请保留出处和链接!
本文链接:https://www.ibaiwen.com/web/282038.html
- 上一篇: Photoshop照片改大小的方法
- 下一篇: Windows jboss组播远程调用调试设置
猜你喜欢
-
监管人员是做什么的(What Regulatory Officer Do)?
-
什么是低度肿瘤(Low-Grade Neoplasm)?
-
面板生成器是做什么的(What Panel Builder Do)?
-
什么是浆液性乳头状腺癌(Serous Papillary Adenocarcinoma)?
-
什么是呼叫中心工作(Call Center Job)?
-
什么是种子疣(What Seed Warts)?
-
念珠菌病有哪些不同的治疗方法(Different Types of Candidiasis Treatment)?
-
事务协调器是做什么的(What Transaction Coordinator Do)?
-
什么是定量免疫球蛋白(Quantitative Immunoglobulin)?
-
我如何成为人才获取专家(Become a Talent Acquisition Specialist)?
- 热门文章
-
WB蒙特利尔(WB Montreal)——欧美十大最差视频游戏开发商
迅猛龙(Velociraptor)——欧美史前十大死亡动物
什么是果酱猫(What Marmalade Cats)?
神奇蜘蛛侠2(The Amazing Spider-Man 2)——欧美最佳蜘蛛侠电影
faceu激萌怎么把瘦脸开到最大
希瑟(Heather)——欧美十大最佳柯南灰歌
奥兹奥斯本(Ozzy Osbourne)——欧美十大高估歌手
二人梭哈
什么是小脑前下动脉(Anterior Inferior Cerebellar Artery)?
我应该知道康涅狄格州的什么(What Should I Know About Connecticut)?
- 热评文章
- 最新评论
-
- 最近访客
-
- 站点信息
-
- 文章总数:261580
- 页面总数:9
- 分类总数:1
- 标签总数:0
- 评论总数:0
- 浏览总数:74382