RestTemplate UTF-8编码与交换无法正常工作

时间:2018-03-15 18:41:32

标签: java spring character-encoding resttemplate

我正在使用RestTemplate的交换方法,如下所示,但它没有正确编码某些字符。

原值为:<Description>Salih'in firewallişççöı ımçööşöşöğ</Description>
发送值为:<Description>Salih'in firewalli?���? ?m���?�?�?</Description>

标题如下:

Content-Type : application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml; charset=ISO-8859-1
Accept : application/*+xml;version=5.6

这就是我提出请求的方式

   restTemplate.setErrorHandler(new RequestErrorHandler());    
   restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));        
   apiResponse = restTemplate.exchange(url, vCloudRequest.getHttpMethod(), entity, responseType);

1 个答案:

答案 0 :(得分:1)

问题在于RestTemplate正在使用charset=ISO-8859-1标题中提供的Content-Type。 如果指定了任何字符集,则检查Content-Type标头,如果是,则使用该字符集。