From 38c19d37458a925e93b0d9cdf4302cfb529a5c34 Mon Sep 17 00:00:00 2001 From: Butui Hu Date: Fri, 12 Apr 2024 00:52:54 +0800 Subject: [PATCH] Fix response encoding to explicitly use UTF-8 for HTTP response data (#1672) Previously, the code used `response.getBytes()` which might rely on the platform's default charset to encode the HTTP response data, leading to inconsistent behavior across platforms. This commit updates the code to use `response.getBytes(StandardCharsets.UTF_8)`, specifying UTF-8 encoding explicitly for processing response data. This ensures cross-platform consistency and avoids potential encoding issues. Signed-off-by: Butui Hu --- .../java/qupath/lib/extension/monailabel/MonaiLabelClient.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/qupath/src/main/java/qupath/lib/extension/monailabel/MonaiLabelClient.java b/plugins/qupath/src/main/java/qupath/lib/extension/monailabel/MonaiLabelClient.java index 36f14a18e..e13a3a9ed 100644 --- a/plugins/qupath/src/main/java/qupath/lib/extension/monailabel/MonaiLabelClient.java +++ b/plugins/qupath/src/main/java/qupath/lib/extension/monailabel/MonaiLabelClient.java @@ -19,6 +19,7 @@ import java.io.InputStream; import java.lang.reflect.Type; import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -190,7 +191,7 @@ public static Document infer(String model, String image, String imageFile, Strin DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); - InputStream inputStream = new ByteArrayInputStream(response.getBytes()); + InputStream inputStream = new ByteArrayInputStream(response.getBytes(StandardCharsets.UTF_8)); Document dom = builder.parse(inputStream); return dom; }