From f7b0b0b2927648cef33fa2d4c85216cbe18fccf4 Mon Sep 17 00:00:00 2001 From: itchyny Date: Mon, 21 Nov 2022 08:51:47 +0900 Subject: [PATCH] Fix explode/0 against Unicode surrogate code points --- .../jackson/jq/internal/functions/ExplodeFunction.java | 4 ++-- jackson-jq/src/test/resources/tests/functions/explode.yaml | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 jackson-jq/src/test/resources/tests/functions/explode.yaml diff --git a/jackson-jq/src/main/java/net/thisptr/jackson/jq/internal/functions/ExplodeFunction.java b/jackson-jq/src/main/java/net/thisptr/jackson/jq/internal/functions/ExplodeFunction.java index 2e125136..de04d786 100644 --- a/jackson-jq/src/main/java/net/thisptr/jackson/jq/internal/functions/ExplodeFunction.java +++ b/jackson-jq/src/main/java/net/thisptr/jackson/jq/internal/functions/ExplodeFunction.java @@ -25,8 +25,8 @@ public void apply(final Scope scope, final List args, final JsonNode Preconditions.checkInputType("explode", in, JsonNodeType.STRING); final ArrayNode result = scope.getObjectMapper().createArrayNode(); - for (final char ch : in.asText().toCharArray()) - result.add((int) ch); + for (final int ch : in.asText().codePoints().toArray()) + result.add(ch); output.emit(result, null); } } diff --git a/jackson-jq/src/test/resources/tests/functions/explode.yaml b/jackson-jq/src/test/resources/tests/functions/explode.yaml new file mode 100644 index 00000000..c43c99fa --- /dev/null +++ b/jackson-jq/src/test/resources/tests/functions/explode.yaml @@ -0,0 +1,4 @@ +- q: 'explode' + in: "\\ud83d\\ude04" + out: + - 128516