This is an automated email from the ASF dual-hosted git repository.

bamaer pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git


The following commit(s) were added to refs/heads/main by this push:
     new fc0e2d3ae8 Trim non-breaking spaces in input values (#9193)
fc0e2d3ae8 is described below

commit fc0e2d3ae821d4cf5cd680c395f041a7f701a197
Author: Gabriel Dutra <[email protected]>
AuthorDate: Sun Nov 1 00:39:02 2026 -0700

    Trim non-breaking spaces in input values (#9193)
---
 core/src/main/java/org/apache/hop/core/Const.java     |  7 ++++++-
 .../apache/hop/core/row/value/ValueMetaBaseTest.java  | 19 +++++++++++++++++++
 .../pipeline/transforms/jsoninput/JsonInputTest.java  | 18 ++++++++++++++++++
 3 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/core/src/main/java/org/apache/hop/core/Const.java 
b/core/src/main/java/org/apache/hop/core/Const.java
index 765e29eb4f..879a29c9cc 100644
--- a/core/src/main/java/org/apache/hop/core/Const.java
+++ b/core/src/main/java/org/apache/hop/core/Const.java
@@ -1752,7 +1752,12 @@ public class Const {
    * @return true if the character is a variables. false otherwise.
    */
   public static boolean isSpace(char c) {
-    return c == ' ' || c == '\t' || c == '\r' || c == '\n' || 
Character.isWhitespace(c);
+    return c == ' '
+        || c == '\t'
+        || c == '\r'
+        || c == '\n'
+        || Character.isWhitespace(c)
+        || Character.isSpaceChar(c);
   }
 
   /**
diff --git 
a/core/src/test/java/org/apache/hop/core/row/value/ValueMetaBaseTest.java 
b/core/src/test/java/org/apache/hop/core/row/value/ValueMetaBaseTest.java
index e07d8a92f7..b24050c45e 100644
--- a/core/src/test/java/org/apache/hop/core/row/value/ValueMetaBaseTest.java
+++ b/core/src/test/java/org/apache/hop/core/row/value/ValueMetaBaseTest.java
@@ -586,6 +586,25 @@ class ValueMetaBaseTest {
             "\t\r\n value \n\r\t", inMeta, null, null, 
IValueMeta.TRIM_TYPE_BOTH));
   }
 
+  @Test
+  void testConvertDataFromStringTrimsNonBreakingSpaces() throws 
HopValueException {
+    ValueMetaBase inMeta = new ValueMetaString();
+    ValueMetaBase outMeta = new ValueMetaString();
+    String input = "\u00A0value\u00A0";
+
+    assertEquals(
+        "value",
+        outMeta.convertDataFromString(input, inMeta, null, null, 
IValueMeta.TRIM_TYPE_BOTH));
+    assertEquals(
+        "value\u00A0",
+        outMeta.convertDataFromString(input, inMeta, null, null, 
IValueMeta.TRIM_TYPE_LEFT));
+    assertEquals(
+        "\u00A0value",
+        outMeta.convertDataFromString(input, inMeta, null, null, 
IValueMeta.TRIM_TYPE_RIGHT));
+    assertEquals(
+        input, outMeta.convertDataFromString(input, inMeta, null, null, 
IValueMeta.TRIM_TYPE_NONE));
+  }
+
   @Test
   void testConvertDataFromStringTrimsBeforeNumericParsing() throws 
HopValueException {
     ValueMetaBase inMeta = new ValueMetaString();
diff --git 
a/plugins/transforms/json/src/test/java/org/apache/hop/pipeline/transforms/jsoninput/JsonInputTest.java
 
b/plugins/transforms/json/src/test/java/org/apache/hop/pipeline/transforms/jsoninput/JsonInputTest.java
index ca49eb6752..e70c8e5464 100644
--- 
a/plugins/transforms/json/src/test/java/org/apache/hop/pipeline/transforms/jsoninput/JsonInputTest.java
+++ 
b/plugins/transforms/json/src/test/java/org/apache/hop/pipeline/transforms/jsoninput/JsonInputTest.java
@@ -216,6 +216,24 @@ class JsonInputTest {
         new Object[][] {new Object[] {jsonInputField, "red"}});
   }
 
+  @Test
+  void testTrimNonBreakingSpaces() throws Exception {
+    String input = "{\"city\":\"\u00A0GAYE\u00A0\"}";
+    JsonInputField city = new JsonInputField("city");
+    city.setPath("$.city");
+    city.setType(IValueMeta.TYPE_STRING);
+    city.setTrimType(IValueMeta.TRIM_TYPE_BOTH);
+
+    JsonInput jsonInput =
+        createJsonInput("json", createSimpleMeta("json", city), new Object[] 
{input});
+    jsonInput.addRowListener(new RowComparatorListener(new Object[] {input, 
"GAYE"}));
+
+    processRows(jsonInput, 2);
+
+    assertEquals(1, jsonInput.getLinesWritten(), "rows written");
+    assertEquals(0, jsonInput.getErrors(), "errors");
+  }
+
   @Test
   void testIndex() throws Exception {
     final String jsonInputField = getBasicTestJson();

Reply via email to