It appears that AbstractJackson2Decoder assumes that the non-blocking parser used with Jackson2Tokenizer auto-detects input's encoding. This appears to not be the case as the parser only works for UTF-8 and ASCII (see https://github.com/FasterXML/jackson-core/issues/596). This causes it to fail with any non-UTF-8 compatible charset. For example, this code throws a DecodingException:
DataBuffer jsonBuffer = new DefaultDataBufferFactory()
.wrap("{\"Psst!\": \"I'm not UTF-8\"}".getBytes(StandardCharsets.UTF_16));
Jackson2JsonDecoder decoder = new Jackson2JsonDecoder();
Flux<Object> flux = decoder.decode(Flux.fromIterable(List.of(jsonBuffer)),
ResolvableType.forType(new ParameterizedTypeReference<Map<String, String> >() {}),
MediaType.parseMediaType("application/json; charset=utf-16"), Map.of());
flux.subscribe(System.out::println);