From 9042682b566ffd6dcdd1a646910b67bad52cb31d Mon Sep 17 00:00:00 2001 From: rstoyanchev Date: Fri, 13 Feb 2026 12:38:38 +0000 Subject: [PATCH] Optimal charset handling in AbstractHttpMessageConverter Closes gh-36320 --- .../http/converter/AbstractHttpMessageConverter.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/converter/AbstractHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/AbstractHttpMessageConverter.java index 4559ea375e2..92eca8fb1fa 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/AbstractHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/AbstractHttpMessageConverter.java @@ -254,13 +254,14 @@ public abstract class AbstractHttpMessageConverter implements HttpMessageConv contentTypeToUse = (mediaType != null ? mediaType : contentTypeToUse); } if (contentTypeToUse != null) { + String value = contentTypeToUse.toString(); if (contentTypeToUse.getCharset() == null) { Charset defaultCharset = getDefaultCharset(); if (defaultCharset != null) { - contentTypeToUse = new MediaType(contentTypeToUse, defaultCharset); + value += ";charset=" + defaultCharset.name(); } } - headers.setContentType(contentTypeToUse); + headers.set(HttpHeaders.CONTENT_TYPE, value); } } if (headers.getContentLength() < 0 && !headers.containsKey(HttpHeaders.TRANSFER_ENCODING)) {