Springmvc 解决相应中的乱码

在服务器返回中文的时候不使用这个注解,而是直接用HttpServletResponse的对象来完成传输,在服务器端可以通过response.setContentType(“text/plain;charset=UTF-8”);来设定编码类型,这样就不会出现中文乱码了

返回值时根据自己的数据类型进行设置,常用的有: 

response.setContentType("text/html; charset=utf-8");     html
response.setContentType("text/plain; charset=utf-8");    文本
response.setContentType("application/json; charset=utf-8");   数据
response.setContentType("application/xml; charset=utf-8"); xml

方法二 可以新建一个实现了BeanPostProcessor 的类

import java.nio.charset.Charset;  
import java.util.ArrayList;  
import java.util.List;  

import org.springframework.beans.BeansException;  
import org.springframework.beans.factory.config.BeanPostProcessor;  
import org.springframework.http.MediaType;  
import org.springframework.http.converter.StringHttpMessageConverter;  

/**  
 * 解决spring MVC3 中@ResponseBody的中文乱码问题  
 */    
public class UTF8StringBeanPostProcessor implements BeanPostProcessor {    
    @Override    
   public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {    
       if (bean instanceof StringHttpMessageConverter) {    
           MediaType mediaType = new MediaType("text", "plain", Charset.forName("UTF-8"));    
          List<MediaType> types = new ArrayList<MediaType>();    
            types.add(mediaType);    
           ((StringHttpMessageConverter) bean).setSupportedMediaTypes(types);    
       }    
        return bean;    
    }    

   @Override    
   public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {    
       return bean;    
    }    
}  

在Spring配置文件中注册这个bean

<!-- 解决使用@ResponseBody 的中文乱码。 -->  
  <bean class="springmvc.extention.UTF8StringBeanPostProcessor"></bean> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值