jo icon indicating copy to clipboard operation
jo copied to clipboard

Null character (i.e. "\0") terminates string, but should actually be escaped instead

Open nicholaides opened this issue 5 months ago • 4 comments

My understanding of the JSON spec is that the null character (\0) is a perfectly cromulent character in an JSON string because JSON strings are UTF-8.

A null character in a string apparently terminates the string in jo:

% jo greeting=$'hello \0 world'
{"greeting":"hello "}

Other control control characters get escaped correctly:

% jo greeting=$'hello \1 world'
{"greeting":"hello \u0001 world"}

It's not a problem with the shell handling \0 because this works as expected:

% echo $'hello \0 world'
hello  world

nicholaides avatar Sep 11 '24 16:09 nicholaides