SpringMVC乱码或前台乱码解决办法

JSP页面乱码

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  

以及 form表单提交方式为必须为post
修改web.xml,增加编码过滤器,如下(注意,需要设置forceEncoding参数值为true)

<filter>  
    <filter-name>characterEncodingFilter</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>forceEncoding</param-name>  
        <param-value>true</param-value>  
    </init-param>  
    </filter>  
    <filter-mapping>  
    <filter-name>characterEncodingFilter</filter-name>  
    <url-pattern>/*</url-pattern>  
    </filter-mapping>  

如果用到了Tomcat的话

 <Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" URIEncoding="UTF-8"/>

在 conf/server.xml 加上 URIEncoding="UTF-8"

返回json乱码

<mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <bean
                class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json</value>
                    </list>
                </property>
                <property name="features">
                    <list>
                        <value>WriteMapNullValue</value>
                        <value>QuoteFieldNames</value>
                        <value>WriteDateUseDateFormat</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

加上<value>text/html;charset=UTF-8</value>

够用了,一般很少出现乱码
有问题直接留言

原文地址:https://www.cnblogs.com/zhousiwei/p/10625735.html