diff --git a/src/main/java/com/avaje/ebeaninternal/server/text/json/ReadBasicJsonContext.java b/src/main/java/com/avaje/ebeaninternal/server/text/json/ReadBasicJsonContext.java index f35864db7..6ec0890f4 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/text/json/ReadBasicJsonContext.java +++ b/src/main/java/com/avaje/ebeaninternal/server/text/json/ReadBasicJsonContext.java @@ -151,6 +151,15 @@ public class ReadBasicJsonContext implements ReadJsonInterface { case '"': sb.append('"'); break; + case 'u': + String msg = "EOF reading unicode value"; + char c1 = src.nextChar(msg); + char c2 = src.nextChar(msg); + char c3 = src.nextChar(msg); + char c4 = src.nextChar(msg); + char u = (char) Integer.parseInt(""+c1+c2+c3+c4, 16); + sb.append(u); + break; default: sb.append('\\'); diff --git a/src/test/java/com/avaje/tests/text/json/TestJsonSimple.java b/src/test/java/com/avaje/tests/text/json/TestJsonSimple.java index 9128e7ce0..d6c884750 100644 --- a/src/test/java/com/avaje/tests/text/json/TestJsonSimple.java +++ b/src/test/java/com/avaje/tests/text/json/TestJsonSimple.java @@ -67,6 +67,10 @@ public class TestJsonSimple extends BaseTestCase { JsonElement jsonElement = InternalJsonParser.parse(s); Assert.assertNotNull(jsonElement); + JsonElement e3 = InternalJsonParser.parse("{\"name\":\"\\u60a8\\u597d\"}"); + + Assert.assertTrue(e3.evalString("name").length()==2); + } }