【问题标题】:ResponseEntity decode UTF-8ResponseEntity 解码 UTF-8
【发布时间】:2016-10-24 10:11:41
【问题描述】:

如何在 ResponseEntity 中解码 UTF-8(尤其是当我得到 Umlauts 时)。我也尝试过使用 SpringHttpMessageConverter,但这不起作用。

RestTemplate restTemplate = new RestTemplate();
//this is not working only by POST
restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));

ResponseEntity<List<WebUser>> responseEntity = restTemplate.exchange(uriComponents.toUri(), HttpMethod.GET,
                        requestEntity, new ParameterizedTypeReference<List<WebUser>>() {
                        });

//responseEntity.getBody().get(0).getFirstName() should be Müller but I get M&uuml;ler

【问题讨论】:

    标签: java utf-8 spring-boot resttemplate


    【解决方案1】:

    应该是穆勒,但我得到穆勒

    这不是 UTF-8 问题。 &amp;uuml; 是一个 HTML 实体(see here 用于实体列表)。您应该取消转义 HTML 实体以响应获取所需的 UTF-8 字符串(请参阅 this answer,了解如何使用 Apache Commons 执行此操作)。

    【讨论】:

    • 除了StringEscapeUtils没有别的办法吗?如您所见,我有对象列表,我将其传递给我的前端应用程序。 (整个列表)。使用 StringEscapeUtils 我必须检查每个字符串。
    • 有几个注意事项: 1. 考虑将数据存储到数据库时将数据规范化为 UTF8 字符串,以便数据库中已经有变音符号 2. 考虑在前端进行 html 反转义(如果这太难了/ 为时已晚 1.)
    猜你喜欢
    • 2012-11-07
    • 2012-06-26
    • 2020-12-09
    • 1970-01-01
    • 2021-10-13
    • 2012-08-23
    • 1970-01-01
    • 2021-03-22
    • 2011-09-02
    相关资源
    最近更新 更多