Package: libjson-perl Version: 2.94-1 File: /usr/share/man/man3/JSON.3pm.gz
We read SYNOPSIS use JSON; # imports encode_json, decode_json, to_json and from_json. # simple and fast interfaces (expect/generate UTF-8) $utf8_encoded_json_text = encode_json $perl_hash_or_arrayref; $perl_hash_or_arrayref = decode_json $utf8_encoded_json_text; Then "utf8" flag disabled When "utf8" is disabled (the default), then "encode"/"decode"... "utf8" flag enabled If the "utf8"-flag is enabled, "encode"/"decode" will encode all characters using the corresponding UTF-8 multi-byte sequence, and will expect your input strings to be encoded as UTF-8, that is, no OK, if the default is "disabled", then $perl_hash_or_arrayref = decode_json $utf8_encoded_json_text; would seem bad, because you said you expect ... OR maybe the "utf8 flag" is referring to the "perl utf8 flag" and not the "JSON utf8 flag". (Conclusion A). Wait, further up the page we see utf8 $json = $json->utf8([$enable]) $enabled = $json->get_utf8 If $enable is true (or missing), then the "encode" method will encode the JSON result into UTF-8, as required by many protocols, while the So this rather confirms my Conclusion A. Therefore please be sure to state clearly every time you say "utf8" which one your are talking about. Yes even if one is a flag and the other is not a flag.