You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Dan Wallach (JIRA)" <ji...@apache.org> on 2018/02/16 03:11:00 UTC

[jira] [Created] (TEXT-118) JSON escaping incorrect for the delete control character

Dan Wallach created TEXT-118:
--------------------------------

             Summary: JSON escaping incorrect for the delete control character
                 Key: TEXT-118
                 URL: https://issues.apache.org/jira/browse/TEXT-118
             Project: Commons Text
          Issue Type: Bug
    Affects Versions: 1.2
         Environment: JDK8u162, Mac OS X 13.something.
            Reporter: Dan Wallach


Here's a simple unit test. The assertion about backspace succeeds. The assertion about the delete character fails. Instead, the delete character shows up in the escaped text. This violates the JSON spec, which forbids "control characters" in strings.
{code:java}
@Test
public void testDeleteCharacter() {
  String backspaceString = "Backspace: \b";
  String deleteString = "Delete: \u007F";
  assertEquals("Backspace: \\b", StringEscapeUtils.escapeJson(backspaceString));
  assertEquals("Delete: \\u007F", StringEscapeUtils.escapeJson(deleteString));
}
{code}
 

The JSON spec doesn't have a specific escape for a delete character, but it does explicitly exclude control characters from passing through. I'd recommend behavior as in the above unit test.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)