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