From 737b86075cb1c0d978e0161f9fc4dae762a30fd4 Mon Sep 17 00:00:00 2001 From: Sean Li <22557931+sean0407@users.noreply.github.com> Date: Mon, 19 Oct 2026 03:40:55 +0800 Subject: [PATCH] fix(jackson): decode short strings as UTF-8 --- .../msgpack/jackson/dataformat/MessagePackParser.java | 2 +- .../dataformat/MessagePackDataformatForPojoTest.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/msgpack-jackson/src/main/java/org/msgpack/jackson/dataformat/MessagePackParser.java b/msgpack-jackson/src/main/java/org/msgpack/jackson/dataformat/MessagePackParser.java index 72aeed20..6d7b7c8e 100644 --- a/msgpack-jackson/src/main/java/org/msgpack/jackson/dataformat/MessagePackParser.java +++ b/msgpack-jackson/src/main/java/org/msgpack/jackson/dataformat/MessagePackParser.java @@ -174,7 +174,7 @@ private String unpackString(MessageUnpacker messageUnpacker) throws IOException return new String(tempChars, 0, strLen); } else { - return new String(tempBytes, 0, strLen); + return new String(tempBytes, 0, strLen, StandardCharsets.UTF_8); } } else { diff --git a/msgpack-jackson/src/test/java/org/msgpack/jackson/dataformat/MessagePackDataformatForPojoTest.java b/msgpack-jackson/src/test/java/org/msgpack/jackson/dataformat/MessagePackDataformatForPojoTest.java index e899e4f4..96e98d04 100644 --- a/msgpack-jackson/src/test/java/org/msgpack/jackson/dataformat/MessagePackDataformatForPojoTest.java +++ b/msgpack-jackson/src/test/java/org/msgpack/jackson/dataformat/MessagePackDataformatForPojoTest.java @@ -94,6 +94,16 @@ public void testStrings() assertEquals(stringPojo.longMultiByte, value.longMultiByte); } + @Test + public void testUnicodeStringRoundTrip() + throws IOException + { + String original = "çÇğĞıİöÖşŞüÜ"; + byte[] bytes = objectMapper.writeValueAsBytes(original); + String value = objectMapper.readValue(bytes, String.class); + assertEquals(original, value); + } + @Test public void testUsingCustomConstructor() throws IOException