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.

Reply via email to