special char in JSON

2019-09-03 12:56发布

问题:

I should send Hi" to a Yahoo server, so in PHP I should place \ befor the ", but it will get bad JSON arguments. How should I do it?

Place Hi" in JSON code without error?

$message = "Hi\"";
$postdata = '{
             "message" : "'.$message.'"
             }';

回答1:

Use json_encode instead of hand-crafting JSON:

$postdata = json_encode(array("message" => $message));

If you must handcraft your JSON, don't forget to add a backslash before a quotation mark:

$message = "Hi\\\"";
// or, more clearly ...
$message = 'Hi\\"';


回答2:

New line character will not work in case of Tooltip with some browsers.
Not working \r\n or \n
Not working single quotes \'abcd

Use double backslash to escape characters.

Solution : use '\\\r\\\n' in place of '\r\n' ,
it will solve your problem.
Happy coding...!