From 96d7d88a317f005f57de1704db882411b8e882cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Sexenian?= <99925035+tomas-sexenian@users.noreply.github.com> Date: Mon, 24 Feb 2025 18:03:42 -0300 Subject: [PATCH 1/2] Do not double encode --- .../com/genexus/internet/HttpClientJavaLib.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/java/src/main/java/com/genexus/internet/HttpClientJavaLib.java b/java/src/main/java/com/genexus/internet/HttpClientJavaLib.java index d96e86690..c520d35a6 100644 --- a/java/src/main/java/com/genexus/internet/HttpClientJavaLib.java +++ b/java/src/main/java/com/genexus/internet/HttpClientJavaLib.java @@ -724,15 +724,14 @@ private void setEntityReader() throws IOException { } public String getString() { - if (response == null) - return ""; + if (response == null) return ""; try { this.setEntity(); + byte[] bytes = EntityUtils.toByteArray(entity); Charset charset = ContentType.getOrDefault(entity).getCharset(); - String res = EntityUtils.toString(entity, charset); - if (res.matches(".*[Ã-ÿ].*")) { - res = EntityUtils.toString(entity, StandardCharsets.UTF_8); - } + String res = new String(bytes, charset); + if (res.matches(".[Ã-ÿ].")) + res = new String(bytes, StandardCharsets.UTF_8); eof = true; return res; } catch (IOException e) { @@ -781,4 +780,4 @@ public void cleanup() { resetErrorsAndConnParams(); } -} \ No newline at end of file +} From 89569679adc5249352ff3e942be90bffff495820 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Sexenian?= <99925035+tomas-sexenian@users.noreply.github.com> Date: Tue, 25 Feb 2025 10:25:42 -0300 Subject: [PATCH 2/2] Match any string with funny characters --- java/src/main/java/com/genexus/internet/HttpClientJavaLib.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/src/main/java/com/genexus/internet/HttpClientJavaLib.java b/java/src/main/java/com/genexus/internet/HttpClientJavaLib.java index c520d35a6..28f8cc98c 100644 --- a/java/src/main/java/com/genexus/internet/HttpClientJavaLib.java +++ b/java/src/main/java/com/genexus/internet/HttpClientJavaLib.java @@ -730,7 +730,7 @@ public String getString() { byte[] bytes = EntityUtils.toByteArray(entity); Charset charset = ContentType.getOrDefault(entity).getCharset(); String res = new String(bytes, charset); - if (res.matches(".[Ã-ÿ].")) + if (res.matches(".*[Ã-ÿ].*")) res = new String(bytes, StandardCharsets.UTF_8); eof = true; return res;