diff --git a/gson/src/main/java/com/google/gson/Escaper.java b/gson/src/main/java/com/google/gson/Escaper.java index a9e81261..309e7a69 100644 --- a/gson/src/main/java/com/google/gson/Escaper.java +++ b/gson/src/main/java/com/google/gson/Escaper.java @@ -54,9 +54,7 @@ class Escaper { htmlEscapeSet.add('>'); htmlEscapeSet.add('&'); htmlEscapeSet.add('='); - // Removing ' for now since it is a valid character in JSON, but not javascript - // When enabling this, remember to enable the test EscaperTest.disable_testSingleQuoteEscaping -// htmlEscapeSet.add('\''); + htmlEscapeSet.add('\''); // htmlEscapeSet.add('/'); -- Removing slash for now since it causes some incompatibilities HTML_ESCAPE_CHARS = Collections.unmodifiableSet(htmlEscapeSet); } @@ -114,10 +112,7 @@ class Escaper { out.append("\\/"); break; case '"': - out.append('\\').append((char) codePoint); - break; - case '\'': - out.append('\\').append((char) codePoint); + out.append("\\\""); break; default: appendHexJavaScriptRepresentation(codePoint, out); diff --git a/gson/src/test/java/com/google/gson/EscaperTest.java b/gson/src/test/java/com/google/gson/EscaperTest.java index 8dde9d75..ff4a589e 100644 --- a/gson/src/test/java/com/google/gson/EscaperTest.java +++ b/gson/src/test/java/com/google/gson/EscaperTest.java @@ -65,10 +65,10 @@ public class EscaperTest extends TestCase { assertEquals("123\\\"456", escapedString); } - public void disable_testSingleQuoteEscaping() throws Exception { + public void testSingleQuoteEscaping() throws Exception { String containsQuote = "123'456"; String escapedString = escapeHtmlChar.escapeJsonString(containsQuote); - assertEquals("123\\'456", escapedString); + assertEquals("123\\u0027456", escapedString); } public void testLineSeparatorEscaping() throws Exception {