当前位置:首页 > 杂谈 > 正文内容

一招教你如何解决中文乱码-如何解决中文乱码的问题和答案

2023-10-08 14:01:15TONY杂谈176

#头条创作挑战赛#

前言

在开发JavaWeb项目时,由于不同的浏览器和服务器对请求和响应处理的编码格式不同,从而导致了中文乱码的现象出现。同时许多的编码方式对中文的处理并不是特别好,所以一般我们需要对请求和响应做出统一的配置,即设置编码集为UTF-8。这篇文章将会告诉你出现乱码到底是怎样解决的。

方法一:直接在Servlet中配置

处理乱码时最直接的方式就是在Servlet中对请求和响应进行配置。具体配置如下:

//设置请求编码格式 request.setCharacterEncoding("utf-8"); //设置响应的编码格式 response.serCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8");

这种方式是最简单直接的方法,但是它也存在一个很大的问题。当业务量多起来时,需要为每个Servlet都加上这几行代码,造成了代码冗余。所以需要想办法把这几行代码抽离出来

方法二:使用过滤器处理乱码

在介绍这种方法之前先来了解一下什么是过滤器

1、什么是过滤器?

过滤器是介于浏览器和web资源之间的,它的作用是将浏览器发来的请求进行“过滤”后再发送给web资源,然后再把web资源返回的响应“过滤”后再返回给浏览器。它的用处也有很多,处理乱码只是其众多功能之一。

上一张图具体描述一下这个流程吧

2、如何利用过滤器处理乱码

使用过滤器处理乱码,首先得有一个过滤器的类

package com.demo.filter; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import java.io.IOException; public class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { //统一处理请求和响应的乱码 servletRequest.setCharacterEncoding("utf-8"); servletResponse.setCharacterEncoding("utf-8"); servletResponse.setContentType("text/html;charset=utf-8"); //处理过后放行 filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { } }

写好过滤器后有两种方式可以使过滤器发挥其功效,分别是在web.xml中配置标签和使用注解的方式

在web.xml中配置<filter> <!-- filter-class 标签用来配置过滤器的位置 ,格式为包名+类名 filter-name 标签相当于给过滤器起个别名 --> <filter-name>myFilter</filter-name> <filter-class>com.demo.filter.MyFilter</filter-class> </filter> <filter-mapping> <!-- filter-name 标签内容要与上边配置的名字相同 url-pattern 标签要拦截的请求名 /* 表示拦截所有请求 --> <filter-name>myFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>使用注解配置

可以使用注解的方式来配置过滤器,不过如果使用了注解就不要再使用web.xml的配置,二者选一种就好,具体方法为:

//在过滤器类上方加上注解@WebFilter ,然后依然通过/* 表示拦截所有请求 @WebFilter("/*") public class MyFilter implements Filter { ..... }

“一招教你如何解决中文乱码-如何解决中文乱码的问题和答案” 的相关文章

虎皮兰在冬季的养殖方法和注意事项

虎皮兰在冬季的养殖方法和注意事项

下面将分别介绍虎皮兰在冬季的养殖方法和注意事项。 一、虎皮兰冬季养殖方法 保持温度:虎皮兰喜欢温暖的环境,冬季温度过低容易影响它的生长。因此,应该将虎皮兰放在室内,避免它受到寒冷天气的影响。室内温度宜...

这几个免费的文献检索网站你一定要知道

这几个免费的文献检索网站你一定要知道

一、IDatahttps://www.cn-ki.net/ iData是由北京大学、清华大学、浙江大学、复旦大学等师生学者共同筹建的用于教学、科研目的的公益互联网项目,旨在促进知识的传播和最新学术科技的共享。iData平台上所有信息均为公开发表的学术文献,由学者自由上传,并提供有限的免费浏览...

消化科 | 最新发表的万篇论文大数据分析:40本SCI期刊投稿指南、研究热点等

消化科 | 最新发表的万篇论文大数据分析:40本SCI期刊投稿指南、研究热点等

原标题:消化科 | 最新发表的万篇论文大数据分析:40本SCI期刊投稿指南、研究热点等 在pubmed上进行检索,我们可以看到自2000年以来,消化科领域相关研究共发表329,756篇(统计时间2023/01/30),从2015年起年发表量超过2万篇,2021年以来每年发表消化科...

电销卡的办理渠道有哪些?

电销卡的办理渠道有哪些?

高频电销卡现在已经是各大电销公司的标配了,古人讲”工欲善其事,必先利其器”,而电销卡就是利器,为电销公司实现高效电销,省去封卡的烦恼。电销卡具体在哪里办理呢? 一,线上平台办理,现在是电商微商时代,我们可以在百度搜索相关商家平台,目前在电销卡专栏,可以看到知云科技公司投放的广告,他...

云盘私有化,天翎群晖NAS,共同守护企业数据安全

云盘私有化,天翎群晖NAS,共同守护企业数据安全

关键词:知识管理系统、群晖NAS 编者按:随着互联网发展,公有云平台以其低成本、易用性、高可靠性等特点得到中小企业决策者的广泛认可。但公有云部署有其不可回避的弊端——企业数据安全问题。系统信息一旦泄露,将会造成不可估量的损失。天翎群晖强强联合,一次解决企业数据安全问题。 企...

原创
            非洲有个富裕国家,出了1位享誉世界的华裔,曾回浙江认祖归宗

原创 非洲有个富裕国家,出了1位享誉世界的华裔,曾回浙江认祖归宗

原标题:非洲有个富裕国家,出了1位享誉世界的华裔,曾回浙江认祖归宗 倘若提起非洲,世人的印象一般都是比较不好的,混乱、贫穷、颜色、疾病等成为了当地的标志,也成为人们所不愿意踏足的原因。当然,凡事都有例外,在这样的大环境下,还是存在一些比较富裕的国家的,比如加蓬共和国便是其中一个经...