spring MVC接收中文乱码问题

2025-04-28 20:37:36
推荐回答(4个)
回答1:

1:表单提交controller获得中文参数后乱码解决方案
注意: jsp页面编码设置为UTF-8
form表单提交方式为必须为post,get方式下面spring编码过滤器不起效果
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  
修改web.xml,增加编码过滤器,如下(注意,需要设置forceEncoding参数值为true)

characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter

encoding
UTF-8


forceEncoding
true



     characterEncodingFilter
     /*
  






2:表单提交controller获得中文参数后正常显示控制台,然后保存数据库出现乱码
注意: 数据库编码是否支持中文
数据库表和表字段是否正确

在配置连接数据库的参数设置修改:
 



第一种情况:
jsp页面中文输入,到controller乱码,这时候需要设置的是在web.xml文件中添加一个编码的过滤器(filter)将编码统一为UTF-8,代码如下:
Web.xml配置文件:
view
 sourceprint?
01.
02.CharacterEncodingFilter
03.org.springframework.web.filter.CharacterEncodingFilter
04.
05.encoding
06.utf-8
07.

08.

09.
10.CharacterEncodingFilter
11./*
12.



这里需要注意的是,最好把这段代码放在web.xml中开头的位置,因为拦截有顺序,如果放在后面的话容易拦截不到。
第二种情况:
数据库中文数据,jsp页面显示乱码(不是严格意义上的乱码,而是以问号的形式呈现)
由于我们前后台的数据交互使用的是json数据,出现这种情况的原因我也不太清楚,之前也没遇到过,只能怪自己做过的项目太少,解决起来也不困难,只需要在转json的时候设置一下编码格式就可以了,代码如下:
view
 sourceprint?
1.response.setContentType("application/json;charset=UTF-8");//防止数据传递乱码
写上这句话就不会再出现乱码了。
第三种情况:
页面中文,传递到controller也是正确的,但是保存到数据库之后就是乱码(也不是严格意义的乱码,跟上面一样全是问号)
这个问题困扰了我一段时间,开始觉得数据库的编码格式不正确,重新创建了编码格式为utf-8的数据库也还是不可以,最后觉得是jboss的问题,我们的服务器用的是jboss,上网查了资料在连接数据源的时候加上编码格式就可以了

回答2:

我是这么认为的!在web.xml里面加上spring提供的编码过滤器,如下: CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true CharacterEncodingFilter /* 就不会乱码了,给分我把

回答3:

UTF-8
检查你的jsp页面有没有设置编码为UTF-8
检查是否有母版页 设置编码为UTF-8
检查你的xml配置里面全局配置是否设置编码为UTF-8
如果这些都设置了应该不会再出现有时候乱码。除非你是流下载上传没编码

回答4:

创建JSP文件的时候,先设定jsp文件的编码,再进行编写,同时创建好jsp编码后再进行页面头部分的编码确认