RestTemplate的Http請求機制一直在用,但從沒有深究過,今天使用它的postForEntity方法發送xml片斷時(動態建立柵格圖層),出現了亂碼問題。json
和安娜討論,發現如下狀況:服務器
一、經過HttpHeaders的setContentType(「applicaiton/json;charset=UTF-8」)方法,約定字符。它是按照Http協議的要求,向服務器聲明發送的json字符集的。app
二、在這樣的設置狀況下,用RestTemplate時可能還會發生亂碼,其緣由是RestTemplate有一系列HTTP消息轉換器(HttpMessageConverter)。這個消息轉換器集合中第1個消息轉換器StringHttpMessageConverter,它默認字符集是「ISO-8859-1」。因此當咱們發送的字符流是UTF-8時,就會出亂碼。post
因此處理辦法是經過restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8)),改變一下StringHttpMessageConverter的字符集。.net
網上參考:http://blog.csdn.net/luccs624061082/article/details/40980623rest