解决Java后台传到前台数据乱码问题
- 方法一
在contraller 层添加 produces = "text/plain;charset=utf-8"
@RequestMapping(value = “/quesstionServlet”,produces = “text/plain;charset=utf-8”) - 方法二
方法里添加
@RequestMapping(value = “/quesstionServlet”,produces = “text/plain;charset=utf-8”)
@ResponseBody
public String doQuesstionServlet(Model model, String userId, String topic, HttpServletResponse response) {
response.setContentType(“text/html;charset=utf-8”);
} - 方法三
在wen.xml中设置编码过滤器
<!--编码过滤器-->
<filter>
<filter-name>encodingFilter</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>
<init-param>
<param-name>forEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
@WebFilter(filterName = "HandlingGarbled" ,urlPatterns = "/*")
public class HandlingGarbled implements Filter {
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
chain.doFilter(req, resp);//过滤后继续执行后面代码
}
@Override
public void init(FilterConfig config) throws ServletException {
}