我有这样一个responseEntity
:
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
requestHeaders.setContentType(MediaType.valueOf("text/plain;charset=UTF-8"));
HttpEntity requestEntity = new HttpEntity(jsonQuery, requestHeaders);
ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
//Not in UTF-8!!
logger.debug("result: " + responseEntity.getBody());
但它不是编码UTF-8
并产生文字是这样的:Soci굩
。是否有可能使其在UTF-8
或以某种方式在restTemplate添加编码?
requestHeaders .add("Content-Type", "text/html; charset=utf-8");
解决的办法是增加一个StringHttpMessageConverter
在utf-8
豆状restTemplate
:
@Bean
public RestTemplate restTemplate() {
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters()
.add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));
return restTemplate;
}