• Description: Currently, I am working on a Spanish project using Spring Web Flux where some requests´ headers contain accents, for example, "Fármaco". We notice some requests are arriving with an unusual format ISO on the header´s value. Taking the previous example, we are getting "Fármaco" only when the request comes with a body, no matter what kind of body, even with an empty body. When the request comes without body and header values with accents, it works fine. This is an example of the way we are managing the requests:
package local.demo;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.server.RouterFunction;
import org.springframework.web.reactive.function.server.ServerResponse;

import static org.springframework.web.reactive.function.server.RequestPredicates.all;
import static org.springframework.web.reactive.function.server.RouterFunctions.route;

@Configuration
public class DemoController {

    @Bean
    public RouterFunction<ServerResponse> routesRouterFunction(RoutesHandler routesHandler) {
        return route(all(), routesHandler::processRequest);
    }
}
package local.demo;

import org.springframework.stereotype.Component;
import org.springframework.web.reactive.function.server.ServerRequest;
import org.springframework.web.reactive.function.server.ServerResponse;
import reactor.core.publisher.Mono;

@Component
public class RoutesHandler {

    public Mono<ServerResponse> processRequest(ServerRequest serverRequest) {
        return ServerResponse.ok().bodyValue("Request processed");
    }
}
  • Versions:

    • Srping Boot 3.3.11
    • Spring Webflux 6.1.19
  • How to Reproduce: Create a simple service using Web Flux to manage the requests like the above example, to make it easier to reproduce, create a handler method with the objective of making debugging and capturing the request headers and their values. Throw a post request with any kind of body and headers using words in Spanish that use accents like "Fármaco" and see the headers value while debugging the code, like this:

Image