我在使用RestTemplate发布UTF-8编码的JSON时遇到问题.JSON的默认编码是UTF-8,因此媒体类型甚至不应该包含字符集.我曾try 将charset放入mediaType中,但似乎无论如何都不起作用.

My code:

String dataJson = "{\"food\": \"smörrebröd\"}";
HttpHeaders headers = new HttpHeaders();
MediaType mediaType = new MediaType("application", "json", StandardCharsets.UTF_8);
headers.setContentType(mediaType);

HttpEntity<String> entity = new HttpEntity<String>(dataJson, headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Boolean> formEntity = restTemplate.exchange(postUrl, HttpMethod.POST, entity, Boolean.class);

推荐答案

您需要使用字符集UTF-8将StringHttpMessageConverter添加到rest模板的消息转换器.这样地

RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters()
        .add(0, new StringHttpMessageConverter(StandardCharsets.UTF_8));

Json相关问答推荐

使用Shell深入挖掘到最低的SON元素

当有嵌套数组而没有嵌套数组时,展平JSON

如何形成正确的JQ表达式以从JSON文件中获得准确的输出数据?

Bash和echo命令出现意外结果

时间序列的Vega Lite分组条形图

如何使NiFi将数据库单列中的多个值转化为Solr索引中的数组?

Jolt 不打印任何东西

NiFi 使用嵌套数组将 avro 转换为 JSON 数组格式

将 colly 包输出文本添加到 golang 中的映射

如何在 powerapps 中将详细信息表单转换为 json?

Flutter:在本地文件 json 中搜索特殊的阿拉伯字符

N1QL 搜索对象内的某些对象

如何在 Node.js 中解析包含NaN的 JSON 字符串

如何获取json格式的KendoGrid显示数据?

什么 Python 框架用于没有前端的 REST/JSON Web 服务?

json和空数组

读取 HttpwebResponse json 响应,C#

在 Postgres 中向 JSON 对象添加元素

在 JSON 对象中强制执行非空字段

Javascript:如何判断 AJAX 响应是否为 JSON