web开发中乱码的解决办法

一、后台接收 
1.1、 get 请求乱码 
get 请求中,请求参数在请求头中; 
乱码解决方法: 
a、通过在web 服务器中配置编码格式:tomcat 中,在 Connector 中添加URIEncoding="UTF-8"; 

1.2、post 请求乱码 
post 请求中,请求参数分两部份, 
1.2.1、url?参数,这部分参数在请求头中 
乱码解决方法:与 get 请求中相同 
1.2.2、其他请求参数在请求体中(这部分参数 web服务器不会对其编码) 
乱码解决方法: 
a、request.setCharacterEncoding("UTF-8"); 注:要在 request 任何操作之前设置,否则无效。 
b、在 web.xml 中配置拦截器来设置编码字符集: 

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.1、response  println 乱码 
解决方法: 
response.setContentType("text/html; charset=utf-8");  
response.setHeader("content-type","text/html;charset=UTF-8"); 
这两句可以解决响应前端的乱码问题; 
注:要在 response 任何操作之前设置,否则无效! 

2.2、spring mvc 中,注解@response 返回 乱码 
在 spring 配置中扫描 注解映射到方法上 时,添加编码字符集配置: 

Xml代码:
<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中乱码的问题,也可以解决直接返回到界面时乱码的问题 www.cxb306.com推荐使用这个 -->  
                    <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">  
  
                    <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>   

 

posted @ 2015-05-06 17:09  陈晓奎  阅读(329)  评论(0)    收藏  举报