Home » Php » php – json_encode returns NULL, json_last_error_msg gives "Control character error, possibly incorrectly encoded"

php – json_encode returns NULL, json_last_error_msg gives "Control character error, possibly incorrectly encoded"

Posted by: admin July 12, 2020 Leave a comment

Questions:

The file looks fine when read into my editor.

$file = file_get_contents('path/to/file.json');
$json =  json_decode($file, true);
var_dump($json); // null
echo json_last_error_msg(); //Control character error, possibly incorrectly encoded

There isn’t much out there on what this error message means.

How to&Answers:

you can remove the control character, PCRE supports the POSIX notation for character classes [:cntrl:]

$json = preg_replace('/[[:cntrl:]]/', '', $json);
$json = json_decode($json, true);
var_dump($json);
echo json_last_error_msg();