blog sur le développement web, jquery,css3, Magento, Symphony, php et bien d'autres choses

Ce matin je me suis arraché les cheveux sur un problème de json_encode qui me renvoyait tous les caractère accentués de manière bizard.

alors sur tous les forums je lisais oui…tu as juste à encoder ta variable en utf8 via utf8_encode…. mais rien à faire, ça ne changeait rien.

mais il y a cette solution, qui vaut ce quelle vaut mais qui fonctionne à merveille pour moi:

une fois qu’on a la string retourné par le json encode, on a juste à remplacer les caractères mal encodé et le tour est joué.


 $monTableau = preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", json_encode($monTableau));

en espérant que ça vous a enlevé une épine du pied.

Commentaires sur: "PHP : json_encode et problème avec les accents" (6)

  1. content a dit:

    Je dirais même plus, vous m’enlevez une fière chandelle du pied. Merci!

  2. Philippe a dit:

    Moi cela ne fonctionne pas ! Et rien ne fonctionne d’ailleurs !
    Mon fichier JSON est bien encodé avec les accents mais c’est dans ma liste Jquery que les caractères accentués s’affiche style &egrave…

  3. informer a dit:

    bonjour Content,

    J’avais grand espoir de résoudre mon problème avec ta fonction magique mais a priori ça ne fonctionne pas car le caractère spécial envoyé du server Wamp local dans le message suivant reste après traitement par preg_replace

    « ….failed: H\ufffdte … »

    Sur la base de ton code, j’ai :

    $msg[« msg »]= preg_replace(« /\\\\u([a-f0-9]{4})/e », « iconv(‘UCS-4LE’,’UTF-8′,pack(‘V’, hexdec(‘U$1’))) », $e->getMessage());
    $returnData = json_encode($msg);

    Dans $msg[« msg »] j’ai toujours le caractère spécial

    « … failed: H�te ….  »

    Merci pour ton aide

  4. Delphine a dit:

    Merci bien ! J’ai pu économiser 1h et me la péter ;p

  5. Jean-Rocky du Paquet a dit:

    Merci bien, Jacky

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s