1. 程式人生 > >JSON 數據傳遞中文亂碼問題

JSON 數據傳遞中文亂碼問題

中文亂碼問題 tpm shm role string 配置 .get urn quest

解決方法:

1、 在控制器處理方法上的@RequestMapping註解中配置produces

@RequestMapping(value="/getrolelist.html",produces={"application/json;charset=UTF-8"})
    @ResponseBody
    public Object getRoleList(){
        HashMap<String,List<Role>> resultMap=new HashMap<String, List<Role>>();
        List
<Role> roleList=roleService.getRoleList(); resultMap.put("roleList",roleList); for(Role role:roleList){ logger.info("角色id"+role.getId()+role.getRoleName()); } return JSONArray.toJSONString(roleList);//把resultMap轉換成JSON格式返回 }

2、 在springMVC裏配置StringHttpMessageConverter

    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                    <value>application/json;charset=UTF-8</
value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>

3、 1、2都試過了還是亂碼,修改@RequestMapping value屬性後綴名,試過幾個後綴名,除了.html,都能正常返回中文

//修改value後綴名    
    @RequestMapping(value="/getrolelist.do",produces=        {"application/json;charset=UTF-8"})
    @ResponseBody
//修改value後綴名    
@RequestMapping(value="/getrolelist",produces={"application/json;charset=UTF-8"})
    @ResponseBody

估計跟@ResponseBody返回方式有關,先記著了解後再補充

JSON 數據傳遞中文亂碼問題