diff options
author | Mathias <mathias@decodified.com> | 2012-11-21 07:07:54 -0800 |
---|---|---|
committer | Mathias <mathias@decodified.com> | 2012-11-21 07:07:54 -0800 |
commit | 6abcb652f7f2aadaa724e701a45c37cecb417b40 (patch) | |
tree | 5094dfacca8ec1f049006538b8431c3b83bb53a2 | |
parent | f72b585bba6e090199f142668f34af50a57e60ed (diff) | |
parent | 7e791d2efd6899d03bf8c200ce29b51112d5465b (diff) | |
download | spray-json-6abcb652f7f2aadaa724e701a45c37cecb417b40.tar.gz spray-json-6abcb652f7f2aadaa724e701a45c37cecb417b40.tar.bz2 spray-json-6abcb652f7f2aadaa724e701a45c37cecb417b40.zip |
Merge pull request #32 from jdanbrown/fix-unicode-escape
Fix unicode escape
-rw-r--r-- | src/main/scala/spray/json/JsonPrinter.scala | 1 | ||||
-rw-r--r-- | src/test/scala/spray/json/CompactPrinterSpec.scala | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/main/scala/spray/json/JsonPrinter.scala b/src/main/scala/spray/json/JsonPrinter.scala index 23529f3..258c881 100644 --- a/src/main/scala/spray/json/JsonPrinter.scala +++ b/src/main/scala/spray/json/JsonPrinter.scala @@ -67,6 +67,7 @@ trait JsonPrinter extends (JsValue => String) { case '\n' => sb.append("\\n") case '\r' => sb.append("\\r") case '\t' => sb.append("\\t") + case x if x <= 0xF => sb.append("\\u000").append(Integer.toHexString(x)) case x if x <= 0xFF => sb.append("\\u00").append(Integer.toHexString(x)) case x if x <= 0xFFF => sb.append("\\u0").append(Integer.toHexString(x)) case x => sb.append("\\u").append(Integer.toHexString(x)) diff --git a/src/test/scala/spray/json/CompactPrinterSpec.scala b/src/test/scala/spray/json/CompactPrinterSpec.scala index c00512d..5485d7d 100644 --- a/src/test/scala/spray/json/CompactPrinterSpec.scala +++ b/src/test/scala/spray/json/CompactPrinterSpec.scala @@ -50,6 +50,10 @@ class CompactPrinterSpec extends Specification { } "properly escape special chars in JsString" in { CompactPrinter(JsString("\"\\\b\f\n\r\t\u12AB")) mustEqual """"\"\\\b\f\n\r\t""" + "\\u12ab\"" + CompactPrinter(JsString("\u1000")) mustEqual "\"\\u1000\"" + CompactPrinter(JsString("\u0100")) mustEqual "\"\\u0100\"" + CompactPrinter(JsString("\u0010")) mustEqual "\"\\u0010\"" + CompactPrinter(JsString("\u0001")) mustEqual "\"\\u0001\"" } "properly print a simple JsObject" in ( CompactPrinter(JsObject("key" -> JsNumber(42), "key2" -> JsString("value"))) |