Encoding 参数中编码的特殊字符导致spring引导契约测试查询不匹配问题

Encoding 参数中编码的特殊字符导致spring引导契约测试查询不匹配问题,encoding,spring-boot-test,Encoding,Spring Boot Test,在编写消费者端的spring引导契约测试时,当请求参数包含特殊字符时,我遇到了问题。他们会自动编码导致测试失败,因为Spring认为“查询不匹配” ”自动制动" 已编码为“%E8%87%AA%E5%8A%A8%E5%88%B6%E5%8A%A8” 查看日志,我可以看到: 查询:word=自动制动 | 单词:%E8%87%AA%E5%8A%A8%E5%88%B6%E5%8A%A8我也有类似的东西,并用这个修复了它: url value(consumer("/path1/path2/some

在编写消费者端的spring引导契约测试时,当请求参数包含特殊字符时,我遇到了问题。他们会自动编码导致测试失败,因为Spring认为“查询不匹配”

”自动制动" 已编码为“%E8%87%AA%E5%8A%A8%E5%88%B6%E5%8A%A8”

查看日志,我可以看到:
查询:word=自动制动 | 单词:%E8%87%AA%E5%8A%A8%E5%88%B6%E5%8A%A8我也有类似的东西,并用这个修复了它:

    url value(consumer("/path1/path2/something%3Dsomethingelse"), producer("/path1/path2/something=somethingelse"))

同样的问题,你找到解决办法了吗?
@Test
public void testSynonyms_Cmn(){
    RestTemplate restTemplate = new RestTemplate();
    String url = "http://localhost:8080/synonyms";
    HttpHeaders httpHeaders = new HttpHeaders();
    httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);
    UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url)
            .queryParam("filter","canonical")
            .queryParam("lang","cmn-CHN")
            .queryParam("word","自动制动");

    HttpEntity<?> entity = new HttpEntity<>(httpHeaders);
    CentralizedSynonyms centralizedSynonyms = restTemplate.exchange(builder.toUriString(),  HttpMethod.GET, entity
            , CentralizedSynonyms.class).getBody();

    assertThat(centralizedSynonyms.getWord()).isEqualTo("自动制动");
    assertThat(centralizedSynonyms.getCanonical()).isEqualTo("autohold");
}
    url value(consumer("/path1/path2/something%3Dsomethingelse"), producer("/path1/path2/something=somethingelse"))