Based on my understanding of this subject, I’ve come up with the following function for translating a string from PHP to JSON, strictly conforming to the RFC4627.
{[ .json_string | 1.hilite(=php,ln-1=) ]}
A simple test like this
{[ .test | 1.hilite(=php,ln-1=) ]}
yields (in comparison to the _encodeString method of the Zend_Json_Encoder class of Zend Framework)
Zend_Json_Encoder::_encodeString: Array ( [0] => "a null: ; a new line: n; a carriage return: r;" [1] => "a js regex: /(["'])\w+\1/" [2] => "a script element: <script type="test/javascript" src="http://example.com/all.js"></script>" [3] => "a japanese word: u307fu305a" ) json_string: Array ( [0] => "a null: u0000; a new line: n; a carriage return: r;" [1] => "a js regex: /(["'])\w+\1/" [2] => "a script element: <script type="test/javascript" src="http://example.com/all.js"></script>" [3] => "a japanese word: みず" )