MakeRequest::decodeUtf8() seems to be broken in some cases ----------------------------------------------------------
Key: SHINDIG-1229 URL: https://issues.apache.org/jira/browse/SHINDIG-1229 Project: Shindig Issue Type: Bug Components: PHP Affects Versions: 1.1-BETA5 Environment: PHP Shindig (r881567) / PHP 5.2.4 Reporter: Matthieu Huguet Attachments: json-response.txt I have a gadget which is fetching some JSON data from a remote PHP script with makeRequest : Client code : ----------------- [...] var params = {}; params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.SIGNED; params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON; params['OWNER_SIGNED'] = true; params['VIEWER_SIGNED'] = true; gadgets.io.makeRequest(url, callback params); [...] JSON reponse : ---------------------- JSON data contains some special characters (in UTF-8) and are encoded with json_encode(). In some cases, some characters are filtered out by MakeRequest::decodeUtf8(). Here is an example : * The remote PHP script is returning : json_encode(array("test" => "Désolé")); (See the full http response in json-response.txt attachment.) * In MakeRequest::decodeUtf8(), here is how $content is transformed : 1 (original) : {"test":"D\u00e9sol\u00e9"} 2 (after the second preg_replace. the first one is not executed) : {"test":"Déé"} 3 (after mb_decode_numericentity) : {"test":"Déé"} The weird thing is that only non-special characters are filtered out. Is it something wrong with my Json encoded data ? I've no problem while decoding them with json_decode() function. I've tried to add charset=UTF-8 in my Content-Type response, but it changes nothing. Some help will be really appreciated ! Thanks -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.