La fonction Json_decode avec des caractères spéciaux

J'ai un gros problème d'affichage de données via Ajax de jQuery JSON pour mon Serveur. JSLint dire que les données sont OK et le Type de Contenu de la demande est définie à application/x-www-form-urlencoded; charset=UTF-8. Le serveur s'exécute sur PHP 5.2.11 donc je ne peux pas utiliser json_last_error().

J'ai essayé url_decode, utf8_decode et html_entities_decode, mais rien ne semble fonctionner.

var_dump(json_decode($jdata)); renvoie la valeur null, mais si je fais un var_dump($jdata) tout semble OK. $jdata est le post de données:$jdata = $this->input->post('requestdata');.

Voici quelques exemple de message de données s'emparer de Firebug:

{
    "projectnumber": "345",
    "projecdescription": "345",
    "articles": [
        {
            "position": 1,
            "article_id": 677,
            "online_text": "3 Behälter; Band I-III nach indiv. Stückliste, Sprache: DE - Sprache: de"
        },
        {
            "position": 2,
            "article_id": 678,
            "online_text": "2 Behälter; Band I-III nach indiv. Stückliste, Sprache: ### - Sprache: en"
        }
    ]
}

Edit:

J'ai essayé ceci maintenant:

$string = $this->input->post('requestdata');
var_dump($string);
$json = preg_replace('/,\s*([\]}])/m', '$1', utf8_encode($string));
$json = json_decode($json);
var_dump($json);

Le résultat est:

chaîne(338) "{"projectnumber": "4444", "projecdescription": "4444", "articles": [{"position":1, "article_id": 676, "online_text": "### Behälter; Groupe I-III nach indiv. Stückliste, Sprache: DE
- Sprache: de"}, {"position":2, "article_id": 681, "online_text": "### Behälter; Groupe I-III nach indiv. Stückliste, Sprache: ###
- Language: fr"}]}"
NULL

Par collage à la chaîne JSON directement dans la source en PHP, il fonctionne, mais le faire de post pas!

Ce serait travailler pour vous : stackoverflow.com/a/12884807/1226894
double possible de la fonction json_decode est de retour nul en php
Êtes-vous sûr que vous avez une chaîne UTF8 sur le côté serveur? Essayez var_dump(json_decode(utf8_encode($jdata)));
Ce qui est à l'intérieur de $jdata?
Voir la démo : codepad.viper-7.com/ZWZf0I

OriginalL'auteur fillibuster | 2012-10-16