春天@response身体与不同的字母表返回不良结果

时间:2014-11-09 14:32:49

标签: java spring httpresponse

我有一个使用@responsebody注释的spring方法,当有共振体时 希伯来语字母表中客户端显示的响应失真。我将StringHttpMessageConverter字符集更改为utf-8,但结果仍然相同。

我能做什么?

 @RequestMapping(method = RequestMethod.POST,  
                    value  = {"/{accountID}/{containerID}/{objectID:.+}"})
    public @ResponseBody String createObject( @PathVariable String accountID, 
                                              @PathVariable String containerID, 
                                              @PathVariable String objectID, 
                                              HttpServletRequest   request, 
                                              HttpServletResponse  response)



<mvc:annotation-driven>
<!-- register custom converter that returns UTF-8 encoded response-body by defualt -->
    <mvc:message-converters register-defaults="true">
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
            <constructor-arg index="0" name="defaultCharset" value="UTF-8"/>
        </bean>
    </mvc:message-converters>
</mvc:annotation-driven>

2 个答案:

答案 0 :(得分:0)

您的@RequestMapping注释应定义属性produces

@RequestMapping(method = RequestMethod.POST,  
                value  = {"/{accountID}/{containerID}/{objectID:.+}"}, , 
                produces = "text/plain;charset=UTF-8")

否则它使用服务器的默认编码,不一定是UTF-8

答案 1 :(得分:0)

发现问题是什么,响应内容长度没有考虑特殊字符大小,一旦我为特殊字符添加额外空间,客户端上的结果就像预期一样。