我有一个使用@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>
答案 0 :(得分:0)
您的@RequestMapping
注释应定义属性produces
:
@RequestMapping(method = RequestMethod.POST,
value = {"/{accountID}/{containerID}/{objectID:.+}"}, ,
produces = "text/plain;charset=UTF-8")
否则它使用服务器的默认编码,不一定是UTF-8
。
答案 1 :(得分:0)
发现问题是什么,响应内容长度没有考虑特殊字符大小,一旦我为特殊字符添加额外空间,客户端上的结果就像预期一样。