我有一个问题,当服务器响应时,我无法将 json 格式的数据转换为 UTF-8。我已经MediaType
在spring配置xml中设置了,但是好像不行。这是我的服务器端响应代码:
@RequestMapping(value = "/post", method = RequestMethod.POST)
public @ResponseBody String postData(@RequestBody ObjectNode request){
// do something with request
return response;
}
当服务器响应时,json 格式的数据将包含 unicode 的值。在客户端配置中:
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<property name="messageConverters">
<list>
<bean id="formConverter" class="org.springframework.http.converter.FormHttpMessageConverter" />
<bean id="stringConverter" class="org.springframework.http.converter.StringHttpMessageConverter" />
<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" >
<property name="supportedMediaTypes">
<list>
<bean class="org.springframework.http.MediaType">
<constructor-arg value="application" />
<constructor-arg value="json" />
<constructor-arg value="#{T(java.nio.charset.Charset).forName('UTF-8')}"/>
</bean>
</list>
</property>
</bean>
</list>
</property>
</bean>
这是我请求数据的客户端代码,我使用 postForObject 方法:
@Autowired
private RestTemplate restTemplate;
public ObjectNode postObjectNode(ObjectNode request){
ObjectNode node = restTemplate.postForObject("http://localhost:8080/server/post", request, ObjectNode.class);
return node;
}
结果,包含 unicode 的数据将转换为????
. 是服务器引起的还是restTemplate客户端引起的。请帮我。提前致谢...