-2

i tried to encode character '<' with json_encode() function but the output is always unclosed or unfinished json string.

this is my code:

echo json_encode('<');

the output:

"

i already even tried to use this code:

echo json_encode(array_map('utf8_encode',['<']));

but the output still

{["

but if i tried to encode '<>'

echo json_encode('<>');

the output is just like what i wanted:

"<>"


Please help me Thanks

  • 1
    It works fine for me https://3v4l.org/vtfJW – Nick Dec 24 '18 at 06:41
  • my php version is 7.1.18, is that influence it?, i tried it in my sever, in localhost or localserver it works fine too – ibrahim saputra Dec 24 '18 at 06:53
  • Not sure - as you can see from the demo it runs the code on every version of PHP from 5,6,38 to 7.3.0, including 7.1.18. Perhaps there's an issue with how you're displaying the data? – Nick Dec 24 '18 at 06:56

1 Answers1

1

the fault is not the json_encode or php version. it was the header Content-Encoding , i don't why but the header Content-Encoding is set to gzip.
so the solution i have is to change the header Content-Encoding by adding following code in my .php:

header('Content-Encoding: none');

i found this by inspecting header output in Postman

Thanks for your reply all