2014-09-16 10 views
11

mam responseEntity jak ten:Dodaj kodowanie UTF-8 do 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()); 

Ale to nie jest zakodowany w UTF-8 i produkuje znaki tak: Soci굩. Czy można to zrobić w UTF-8 lub jakoś dodać kodowanie w restTemplate?

Odpowiedz

0

Roztwór dodać StringHttpMessageConverter z utf-8 w restTemplate ziarna, takie jak:

@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");