{"action":"created","issue":{"url":"https://api.github.com/repos/typesafehub/config/issues/335","labels_url":"https://api.github.com/repos/typesafehub/config/issues/335/labels{/name}","comments_url":"https://api.github.com/repos/typesafehub/config/issues/335/comments","events_url":"https://api.github.com/repos/typesafehub/config/issues/335/events","html_url":"https://github.com/typesafehub/config/issues/335","id":93944922,"number":335,"title":"Tokenizer incorrectly throws on unicode control characters in range U+007F through +U009F","user":{"login":"carylee","id":135997,"avatar_url":"https://avatars.githubusercontent.com/u/135997?v=3","gravatar_id":"","url":"https://api.github.com/users/carylee","html_url":"https://github.com/carylee","followers_url":"https://api.github.com/users/carylee/followers","following_url":"https://api.github.com/users/carylee/following{/other_user}","gists_url":"https://api.github.com/users/carylee/gists{/gist_id}","starred_url":"https://api.github.com/users/carylee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/carylee/subscriptions","organizations_url":"https://api.github.com/users/carylee/orgs","repos_url":"https://api.github.com/users/carylee/repos","events_url":"https://api.github.com/users/carylee/events{/privacy}","received_events_url":"https://api.github.com/users/carylee/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-07-09T03:31:24Z","updated_at":"2015-07-09T04:38:10Z","closed_at":null,"body":"According to the [JSON RFC Section 2.5](https://www.ietf.org/rfc/rfc4627.txt), only unicode control characters in the range U+0000-U+001F must be escaped with a backslash:\r\n> All Unicode characters may be placed within the\r\n>  quotation marks except for the characters that must be escaped:\r\n>   quotation mark, reverse solidus, and the control characters (U+0000\r\n>   through U+001F).\r\n\r\nAttempting to parse a JSON string with a unicode control character like U+0098 throws an exception with the error: \"JSON does not allow unescaped 0x98 in quoted strings, use a backslash escape\".\r\n\r\nBasically, the Tokenizer is overzealous in its control character parsing by using `Character.isISOControl()` which checks both the range U+0000-U+001F and the range U+007F through U+009F."},"comment":{"url":"https://api.github.com/repos/typesafehub/config/issues/comments/119815984","html_url":"https://github.com/typesafehub/config/issues/335#issuecomment-119815984","issue_url":"https://api.github.com/repos/typesafehub/config/issues/335","id":119815984,"user":{"login":"carylee","id":135997,"avatar_url":"https://avatars.githubusercontent.com/u/135997?v=3","gravatar_id":"","url":"https://api.github.com/users/carylee","html_url":"https://github.com/carylee","followers_url":"https://api.github.com/users/carylee/followers","following_url":"https://api.github.com/users/carylee/following{/other_user}","gists_url":"https://api.github.com/users/carylee/gists{/gist_id}","starred_url":"https://api.github.com/users/carylee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/carylee/subscriptions","organizations_url":"https://api.github.com/users/carylee/orgs","repos_url":"https://api.github.com/users/carylee/repos","events_url":"https://api.github.com/users/carylee/events{/privacy}","received_events_url":"https://api.github.com/users/carylee/received_events","type":"User","site_admin":false},"created_at":"2015-07-09T04:38:10Z","updated_at":"2015-07-09T04:38:10Z","body":"https://github.com/typesafehub/config/pull/336"}}