2014-09-16 7 views
11

Ich habe ein responseEntity wie diese:In UTF-8-Kodierung 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()); 

Aber es ist nicht in UTF-8 codiert ist und produziert Zeichen wie folgt aus: Soci굩. Ist es möglich, es in UTF-8 zu machen oder die Codierung irgendwie in restTemplate hinzuzufügen?

Antwort

0

Die Lösung war eine StringHttpMessageConverter mit utf-8 in restTemplate Bohne hinzufügen:

@Bean 
public RestTemplate restTemplate() { 
    RestTemplate restTemplate = new RestTemplate(); 
    restTemplate.getMessageConverters() 
      .add(0, new StringHttpMessageConverter(Charset.forName("UTF-8"))); 
    return restTemplate; 
} 
5
requestHeaders .add("Content-Type", "text/html; charset=utf-8"); 
Verwandte Themen