From b61643b71a04fee5bb74d6bf1b35aae4125afb9e Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Tue, 2 Mar 2021 14:45:09 +0100 Subject: [PATCH] Support UTF-16/UTF-32 in Jackson message converter This commit makes sure that we let Jackson deal with all the encodings that it supports, including UTF-16 and UTF-32. Closes gh-26627 --- .../converter/json/AbstractJackson2HttpMessageConverter.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java index d6f5b49f6c..19b22fef2c 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java @@ -357,7 +357,9 @@ public abstract class AbstractJackson2HttpMessageConverter extends AbstractGener ObjectMapper objectMapper = selectObjectMapper(javaType.getRawClass(), contentType); Assert.state(objectMapper != null, "No ObjectMapper for " + javaType); - boolean isUnicode = ENCODINGS.containsKey(charset.name()); + boolean isUnicode = ENCODINGS.containsKey(charset.name()) || + "UTF-16".equals(charset.name()) || + "UTF-32".equals(charset.name()); try { if (inputMessage instanceof MappingJacksonInputMessage) { Class deserializationView = ((MappingJacksonInputMessage) inputMessage).getDeserializationView();