Bonjour,

Ce que je fais

quand j'envoie un message de ce type , "json_encode" ne renvoi rien !

Ce que je veux

je voudrais savoir comment faire pour afficher mon message ou supprimer si il y a ce type de caractere ( exposant ? )

10 réponses


kaloutch
Auteur
Réponse acceptée

Finalement j'ai trouvé la solution ENFIN
json_encode etait vide car il y avais une erreur
J'ai recupéré cette erreur avec json_last_error()

function my_json_encode($data) {
    if( json_encode($data) === false ) {
        throw new Exception( json_last_error() );
    }
    else{
        return json_encode($data);
    }
}

du coup c'etait a cause de l'encodage UTF-8
j'ai converti l'encodage avec iconv

$string = iconv('UTF-8', 'UTF-8//IGNORE', $string);

et la c'est bon plus d'erreur !

Salut,

Esssaye d'échapper les caractères spéciaux à la rigueur ?

kaloutch
Auteur

avec avec preg_replace ? c'est long à faire et pas fou je voudrais savoir avant s'il n'y a pas une autre méthode

Peut-être avec un simple urlencode() ?

kaloutch
Auteur

alors sa fonction mais ça a cassé mon URL

kaloutch
Auteur

non c'est mort , ca casse les points exclamation et le reste ..

kaloutch
Auteur

c'est ce bout de code : https://codeshare.io/2BgMrL

Je pense que tu fais les choses à l'envers : tu dois urlencode les parties de ton JSON que tu souhaites encoder PUIS json_encode le tout,. Tu me suis ? :)

kaloutch
Auteur

c'est exactement ce que je fais
`1. $message = htmlentities(urlencode($Publish['message']),ENT_QUOTES,'UTF-8');

  1. $Json['html']['string'] = $message;
  2. echo json_encode($Json);
  3. (ajax) $(data.html.selector).html(data.html.string);`
kaloutch
Auteur

ok avec decodeURIComponent ca passe mais il y a des petits bug . niveau securité c'est pas chaud d utilisé decodeURIComponent si l'utilisateur peut mettre nimportequoi ?

  1. (ajax) $(data.html.selector).html(decodeURIComponent(data.html.string));