广告
返回顶部
首页 > 资讯 > 精选 >SpringMVC中出现中文乱码如何解决
  • 619
分享到

SpringMVC中出现中文乱码如何解决

2023-06-14 13:06:19 619人浏览 薄情痞子
摘要

springMVC中出现中文乱码如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。表单<%@ page contentType="t

springMVC中出现中文乱码如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

表单

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>Title</title></head><body><fORM action="/c02/t1" method="post">    <input type="text" name="name">    <input type="submit"></form></body></html>

业务控制类

package controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.WEB.bind.annotation.RequestMapping;@Controllerpublic class controllerDemo02 {    @RequestMapping("/c02/t1")    public String test1(String name, Model model){        System.out.println(name);        model.addAttribute("message",name);        return "test";    }}

结果:出现乱码

SpringMVC中出现中文乱码如何解决

解决方案

使用自己写的过滤器

自定义一个Filter过滤器,去过滤乱码

package Filter;import javax.servlet.*;import java.io.IOException;public class EncodingFilter implements Filter {    public void init(FilterConfig filterConfig) throws ServletException {    }    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {        servletRequest.setCharacterEncoding("utf-8");        servletResponse.setCharacterEncoding("utf-8");        filterChain.doFilter(servletRequest,servletResponse);    }    public void destroy() {    }}

在web.xml中配置这个过滤器

<filter>        <filter-name>EncodingFilter</filter-name>        <filter-class>Filter.EncodingFilter</filter-class>    </filter>    <filter-mapping>        <filter-name>EncodingFilter</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>

使用Springmvc提供的过滤器

直接在web.xml中配置(固定的)

<filter>   <filter-name>encoding</filter-name>   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>   <init-param>       <param-name>encoding</param-name>       <param-value>utf-8</param-value>   </init-param></filter><filter-mapping>   <filter-name>encoding</filter-name>   <url-pattern>/*</url-pattern></filter-mapping>

如果上面两种方法还实现不了,在试试以下这个方法,大神编写的

package Filter;import javax.servlet.*;import javax.servlet.Http.httpservletRequest;import javax.servlet.http.HttpServletRequestWrapper;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.Map;public class GenericEncodingFilter implements Filter {    public void destroy() {    }    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {        //处理response的字符编码        HttpServletResponse myResponse=(HttpServletResponse) response;        myResponse.setContentType("text/html;charset=UTF-8");        // 转型为与协议相关对象        HttpServletRequest httpServletRequest = (HttpServletRequest) request;        // 对request包装增强        HttpServletRequest myrequest = new MyRequest(httpServletRequest);        chain.doFilter(myrequest, response);    }    public void init(FilterConfig filterConfig) throws ServletException {    }}//自定义request对象,HttpServletRequest的包装类class MyRequest extends HttpServletRequestWrapper {    private HttpServletRequest request;    //是否编码的标记    private boolean hasEncode;    //定义一个可以传入HttpServletRequest对象的构造函数,以便对其进行装饰    public MyRequest(HttpServletRequest request) {        super(request);// super必须写        this.request = request;    }    // 对需要增强方法 进行覆盖    public Map getParameterMap() {        // 先获得请求方式        String method = request.getMethod();        if (method.equalsIgnoreCase("post")) {            // post请求            try {                // 处理post乱码                request.setCharacterEncoding("utf-8");                return request.getParameterMap();            } catch (UnsupportedEncodingException e) {                e.printStackTrace();            }        } else if (method.equalsIgnoreCase("get")) {            // get请求            Map<String, String[]> parameterMap = request.getParameterMap();            if (!hasEncode) { // 确保get手动编码逻辑只运行一次                for (String parameterName : parameterMap.keySet()) {                    String[] values = parameterMap.get(parameterName);                    if (values != null) {                        for (int i = 0; i < values.length; i++) {                            try {                                // 处理get乱码                                values[i] = new String(values[i]                                        .getBytes("ISO-8859-1"), "utf-8");                            } catch (UnsupportedEncodingException e) {                                e.printStackTrace();                            }                        }                    }                }                hasEncode = true;            }            return parameterMap;        }        return super.getParameterMap();    }    //取一个值    public String getParameter(String name) {        Map<String, String[]> parameterMap = getParameterMap();        String[] values = parameterMap.get(name);        if (values == null) {            return null;        }        return values[0]; // 取回参数的第一个值    }    //取所有值    public String[] getParameterValues(String name) {        Map<String, String[]> parameterMap = getParameterMap();        String[] values = parameterMap.get(name);        return values;    }}

关于SpringMVC中出现中文乱码如何解决问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: SpringMVC中出现中文乱码如何解决

本文链接: https://www.lsjlt.com/news/271079.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringMVC中出现中文乱码如何解决
    SpringMVC中出现中文乱码如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。表单<%@ page contentType="t...
    99+
    2023-06-14
  • SpringMVC中出现中文乱码怎么解决
    这篇文章将为大家详细讲解有关SpringMVC中出现中文乱码怎么解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。问题使用SpringMVC在返回一个字符串时发生了中文乱码问题。produc...
    99+
    2023-06-20
  • 在springMVC中向Controller传值时出现中文乱码如何解决
    这篇文章给大家介绍在springMVC中向Controller传值时出现中文乱码如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。问题容易出现在这几点:tomcat关于中文的配置.jsp页面的字符设置.数据库的字符...
    99+
    2023-06-06
  • postgresql中出现中文乱码如何解决
    postgresql中出现中文乱码的解决方法:1.启动postgresql服务;2.登录postgresql数据库;3.使用数据库;4.使用show命令查看数据库编码;5.使用set命令将数据库编码修改为GBK;具体步骤如下:首先,在命令行...
    99+
    2022-10-22
  • Python中出现中文乱码如何解决
    今天就跟大家聊聊有关Python中出现中文乱码如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在Python 中文乱码中提到unicode,一般指的是unicode对象,例如&...
    99+
    2023-06-17
  • Samba中出现中文乱码如何解决
    今天就跟大家聊聊有关Samba中出现中文乱码如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Samba显示中文乱码,添加下面的内容到smb.conf中client code p...
    99+
    2023-06-07
  • SpringMVC 中文乱码的解决方案
    目录背景解决方案使用自己写的过滤器使用SpringMVC提供的过滤器如果上面两种方法还实现不了,在试试以下这个方法,大神编写的背景 举个例子,出现中文乱码的例子:提交表单的时候。 表...
    99+
    2022-11-12
  • Python中出现文本乱码如何解决
    今天就跟大家聊聊有关Python中出现文本乱码如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在处理utf8文本格式的时候,由于这些文本是含BOM(byte order mar...
    99+
    2023-06-17
  • Docker容器中出现中文乱码如何解决
    本篇文章给大家分享的是有关Docker容器中出现中文乱码如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前台上传文件到服务器后,服务器返回给前台的文件列表中出现中文乱码,...
    99+
    2023-06-07
  • CentOS 6.4中出现Vsftpd中文乱码如何解决
    这篇文章主要介绍“CentOS 6.4中出现Vsftpd中文乱码如何解决”,在日常操作中,相信很多人在CentOS 6.4中出现Vsftpd中文乱码如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Cen...
    99+
    2023-06-10
  • SpringMVC返回的ResponseEntity出现乱码及解决
    目录返回ResponseEntity乱码问题原因解决ResponseEntity下载文件名中文乱码解决办法问题解决返回ResponseEntity乱码 问题 前台通过数据到后台查询相...
    99+
    2022-11-13
  • tomcat输出中文乱码如何解决
    要解决Tomcat输出中文乱码的问题,可以参考以下几个步骤:1. 在Tomcat的配置文件server.xml中,找到Connect...
    99+
    2023-09-23
    tomcat
  • node.js输出中文乱码如何解决
    这篇文章主要介绍“node.js输出中文乱码如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“node.js输出中文乱码如何解决”文章能帮助大家解决问题。node.js输出中文乱码的解决办法:1...
    99+
    2023-07-04
  • 解决springmvc+mybatis+mysql中文乱码问题【转】
    这篇文章主要介绍了解决java中springmvc+mybatis+mysql中文乱码问题的相关资料,需要的朋友可以参考下近日使用ajax请求springmvc后台查询mysql数据库,页面显示中文出现乱码...
    99+
    2022-10-18
  • springmvc 发送ajax出现中文乱码怎么办
    这篇文章将为大家详细讲解有关springmvc 发送ajax出现中文乱码怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我使用的是sping-web-3.2.2,ja...
    99+
    2022-10-19
  • MySQL中文出现乱码怎么解决
    本篇内容主要讲解“MySQL中文出现乱码怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL中文出现乱码怎么解决”吧! MYSQL经典问题...
    99+
    2022-10-18
  • ajax出现中文乱码怎么解决
    这篇文章主要讲解了“ajax出现中文乱码怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ajax出现中文乱码怎么解决”吧! ...
    99+
    2022-10-19
  • Android中HTTP请求中文出现乱码如何解决
    Android中HTTP请求中文出现乱码如何解决,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android中HTTP请求中文乱码解决办法 编码参数List<N...
    99+
    2023-05-30
    android http
  • SpringMVC中解决@ResponseBody注解返回中文乱码问题
    昨天在做项目的时候用@ResponseBody注解,发现返回页面上的中文是乱码,解决过程也是让我很郁闷!!!特此记录一些。目前有下面几种解决方案:@RequestMapping的produces方法第一种解决方案是使用@RequestMap...
    99+
    2023-05-31
    responsebody @response bo
  • 在php中使用mssql出现中文乱码如何解决
    这篇文章给大家介绍在php中使用mssql出现中文乱码如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。php显示mssql中文乱码的解决办法:1、根据页面情况来设置utf-8编码;2、直接在程序中通过iconv函...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作