On Wed, Jan 18, 2017 at 11:11:06AM +0100, Christophe Demarey wrote: > > > Le 18 janv. 2017 à 09:51, Sven Van Caekenberghe <s...@stfx.eu> a écrit : > > > > Hi Christophe, > > > >> STON toString: 'g...@github.com:foo/bar.git’ => > >> ''g...@github.com:foo\/bar.git’' > >> It used to be ''g...@github.com:foo/bar.git’’.
> > In other words, it was an implementation error (omission). Note that JSON > > also has this escape. Yes and no for JSON. Only " and \ has to be escaped. Escaping anything else will give it special meaning with the exception of / which will just produce the same thing, because it is a special snowflake. :) quoted from https://tools.ietf.org/html/rfc7159#section-7: - Unicode characters may be placed within the quotation marks, except for the characters that must be escaped: quotation mark, reverse solidus, and the control characters (U+0000 through U+001F). - Alternatively, there are two-character sequence escape representations of some popular characters. "/" (U+002F) doesn't fall into control character range, but the alternative section does permit it escaping it. In other words, JSON strings "\/", and "/", and "\u002f" are equivalent. But JSON itself doesn't require you to escape "/" (just like you are not required to escape "hi" into "\u0068\u0069", although you can). Note that other systems do not escape / by default: (Pharo) NeoJSONWriter toString: 'g...@github.com:foo/bar.git' => "g...@github.com:foo/bar.git" (JavaScript) JSON.stringify('g...@github.com:foo/bar.git') => "g...@github.com:foo/bar.git" (Ruby) require 'json' puts 'g...@github.com:foo/bar.git'.to_json => "g...@github.com:foo/bar.git" Peter