...You can think of it as a low-fat alternative to XML if you want to store data on disk or transmit it over a network rather than use a verbose markup language. Both variants of the JSON generator generate UTF-8 character sequences by default. If an:ascii_only option with a true value is given, they escape all non-ASCII and control characters with \uXXXX escape sequences, and support UTF-16 surrogate pairs in order to be able to generate the whole range of Unicode code points. All strings, that are to be encoded as JSON strings, should be UTF-8 byte sequences on the Ruby side. To encode raw binary strings, that aren't UTF-8 encoded, please use the to_json_raw_object method of String (which produces an object, that contains a byte array) and decode the result on the receiving endpoint.