web server 乱码

允我心安 提交于 2020-12-08 07:47:43

以下前端都是 utf-8 字符集编码

一、后台接收

1.1 get 请求

get 请求中,请求参数在请求头中; 

解决方法:通过在 web server 中配置编码格式:tomcat 中,在 Connector 中添加URIEncoding="UTF-8"

1.2、post 请求乱码

post 请求中,请求参数分两部份,

1.2.1、url?参数,这部分参数在请求头中

解决方法:与 get 请求中相同

1.2.2、其他请求参数在请求体中(这部分参数 web server 不会对其编码)

解决方法:

1、request.setCharacterEncoding("UTF-8"); 注:要在 request 任何操作之前设置,否则无效。

2、在 web.xml 中配置拦截器来设置编码字符集:

<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>
</filter>
<filter-mapping>
  <filter-name>characterEncodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

二、响应前端

2.1response  println 乱码

解决方法:

response.setContentType("text/html; charset=utf-8");  

response.setHeader("content-type","text/html;charset=UTF-8"); 

这两句可以解决响应前端的乱码问题;

注:要在 response 任何操作之前设置,否则无效!

2.2spring mvc 中,注解 @response 返回 乱码

spring 配置中扫描 注解映射到方法上 时,添加编码字符集配置:

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
  <property name="messageConverters">
    <list><!-- 设置返回字符串编码 -->
      <bean class="org.springframework.http.converter.StringHttpMessageConverter">  
        <property name="supportedMediaTypes">  
          <!--  注解response 输出中文时, 这个配置可以解决 在ajax中乱码的问题,但直接返回到界面时还是乱码
          <list> 
            <value>text/plain;charset=UTF-8</value>  
            <value>text/html;charset=UTF-8</value>
          </list>  
          -->
          <!-- 注解response 输出中文时, 这个配置可以解决 在ajax中乱码的问题,也可以解决直接返回到界面时乱码的问题  -->
          <list> 
            <bean class="org.springframework.http.MediaType">
              <constructor-arg index="0" value="text" />
              <constructor-arg index="1" value="plain" />
              <constructor-arg index="2" value="UTF-8" />
            </bean>
          </list>                 
        </property>  
      </bean> 
      <!-- json转换器 
      <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
          <list>    
            <value>applicaton/json;charset=UTF-8</value>    
            <value>text/javascript;charset=UTF-8</value>  
            <value>text/html;charset=UTF-8</value>  
          </list>    
        </property>    
      </bean>
      -->
    </list>
  </property>
</bean> 

------------------------------------------------------------------- 
若有凝问或错误,请指出, 我好及时改正,让我们一起进步! 
email : vinson_bs@126.com
qq      : 103 586 2795 
敲门砖: 代码谱写人生 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!