解决乱码问题
有时候在数据传输中,可能会出现各种乱码问题。
比如简单做一个表单的提交和回传。
<form action="${pageContext.request.contextPath}/restful/getUser" method="post">
<input type="text" name="id">
<input type="text" name="name">
<input type="text" name="password">
<input type="submit">
</form>
@PostMapping("restful/getUser")
public String testUserModel(@ModelAttribute User user, Model model){
User user1 = user;
System.out.println(user1);
model.addAttribute("mes",user1);
return "hello";
}
输入中文后,显示异常。
1 传统方式
在传统中,我们可以使用setCharacterEncoding解决服务器接收数据的乱码问题,用setContentType数据显示乱码问题。
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");
由于传递参数的变化,传统方式不再适用于现有的工程了。
2 SpringMVC提供的过滤器
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>