diff --git a/commons/src/main/java/org/restheart/utils/URLUtils.java b/commons/src/main/java/org/restheart/utils/URLUtils.java index 7a7cedc07..e52a4d50b 100644 --- a/commons/src/main/java/org/restheart/utils/URLUtils.java +++ b/commons/src/main/java/org/restheart/utils/URLUtils.java @@ -21,11 +21,13 @@ import java.io.UnsupportedEncodingException; import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; import java.util.regex.Pattern; import org.bson.BsonValue; import org.restheart.exchange.UnsupportedDocumentIdException; +import io.undertow.UndertowOptions; import io.undertow.server.HttpServerExchange; import io.undertow.util.QueryParameterUtils; @@ -96,7 +98,9 @@ public static String decodeQueryString(String qs, String enc) { * @return the decoded query string */ public static String decodeQueryString(HttpServerExchange exchange) { - return decodeQueryString(exchange.getQueryString(), QueryParameterUtils.getQueryParamEncoding(exchange)); + var enc = QueryParameterUtils.getQueryParamEncoding(exchange); + enc = enc == null ? exchange.getConnection().getUndertowOptions().get(UndertowOptions.URL_CHARSET, StandardCharsets.UTF_8.name()) : enc; + return decodeQueryString(exchange.getQueryString(), enc); } /**