我正在使用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);
答案 0 :(得分:1)
问题在于RestTemplate
正在使用charset=ISO-8859-1
标题中提供的Content-Type
。
如果指定了任何字符集,则检查Content-Type
标头,如果是,则使用该字符集。