Spring MVC POST向后端传入中文乱码问题
在前端页面的form表单字符集为UTF-8的前提下,向后端发出POST请求传入中文参数,出现乱码问题
Spring容器用来创建请求读和解析枯升POST数据的默认编码是"ISO-8859-1",因此出现中文乱码
1) 手动转码
手动将HttpServletRequest转码为utf-8
2) 配置老茄过滤器
在web.xml中配置filter,设置url-param参数为/*将所有没含老请求转为uft-8编码
如何在Spring中解决中文乱码的方法
可以编写一个Filter
public class EncodingFilter implements Filter {
/** 编码 */
String encoding = null;
/** 销毁编码 */
public void destroy() {
this.encoding = null;
}
/**
* 执行过滤链,对请求和相应设置编码
*/
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (encoding != null) {
// 对请求进行编码设置
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
}
// 将处理权转举纳交给下一个处理器
chain.doFilter(request, response);
}
/**
* 初始化编码,从配置文件中获取编码的值
*/
public void init(FilterConfig filterConfig) throws ServletException {
this.encoding = filterConfig.getInitParameter("encoding");
}
}
需要再Web.xm中注轿穗册拦截器
filter
filter-nameEncodingFilter/filter-name
filter-classcom.sato.filter.EncodingFilter/filter-class
init-param闭答卜
param-nameencoding/param-name
param-valueGBK/param-value
/init-param
/filter
java http spring mvc 302重定向 url 中文乱码
把中文转成unicode编码,然后放到配置文件中,通过取unicode编码来虚岁访问中文,就不会存在乱码的问题了,具体方法就是直接在配置文件里该中文=unicode编码就行了,然后取到这个配置文件,读取对应的值,然孝键后放到url中差慎睁。
springMVC 解决中文乱码时使用produces报错?
RequestMapping中并没有produces这个属性,不知道你哪里搜来的,编译器也告诉你了只能选填
这四个属伏谈册性。
我琢磨着你说的中文乱码是什侍神么情况?text/html;charset=utf-8这段不是加在.jsp文件里的吗?
嗷 不对,是有的:
是不是你的spring版本太低了,我这个是spring-web-4.3.6.RELEASE.jar里缺宏的是支持的
二、解决SpringMVC前端发送到后端中文乱码问题
遇到SpringMVC框架中,从前端form表单中传递中文到后端Controller时,Controller接收到数据出现斗晌乱码问题时:让链
在坦销孙SpringMVC的web.xml中加入一个过滤器即可解决