IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Utilisation accents dans imap_fetchbody


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 163
    Points : 59
    Points
    59
    Par défaut Utilisation accents dans imap_fetchbody
    Bonjour,

    J'ai utilisé ce post (réponse 1) pour pouvoir aller chercher le corps du message reçu par email.
    La fonction getBody renvoie ce qu'il faut mais il y a un souci avec certains messages (caractères spéciaux j'imagine) car pour certains messages, le bloc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $message=getBody($msg_uid, $mailbox);  // là le contenu de $message est absolument correct
    $contenu_boitemail = array("message"=>$message, "test"=>"un mot ici" );
    echo json_encode($contenu_boitemail); // Mais ICI, cette commande json_encode renvoie ""
    renvoie quelque chose de vide. Je soupçonne un problème avec l'encodage. J'ai essayé de passer $message à la moulinette du $message = iconv_mime_decode($message,0,"UTF-8"), du imap_mime_header_decode, du mb_convert_encoding, tout cela en vain...

    Est-ce que quelqu'un aurait un conseil ? Big merci d'avance !

    T.

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 895
    Points : 6 651
    Points
    6 651
    Par défaut
    php dispose de deux fonctions qui peuvent te renseigner sur l'erreur qui est survenue lors de l'encodage avec json_encode: json_last_error et json_last_error_msg. Utilise les pour savoir ce qui coince.

    (Tu trouveras également une fonction récursive pour la conversion du tableau en utf-8 dans les commentaires sur la page de json_last_error)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 163
    Points : 59
    Points
    59
    Par défaut
    Merci ! C'était l'erreur "Malformed UTF-8 characters, possibly incorrectly encoded". Du coup, comme je voyais que pour tous les emails reçus, il passait par la ligne "case 4: return imap_qprint($text);", je l'ai transformée en "case 4: return utf8_encode(imap_qprint($text));" et l'encodage JSON a alors fonctionné...

    PAR CONTRE, s'il y a certains messages qui sont décodés correctement, j'obtiens pour d'autres des problèmes du genre "En vous souhaitant bonne réception, " ou "trouver en fichier attaché " ou "J'ai ajouté une copie"... Je reste coincé, je ne sais pas ce qui pose problème...

Discussions similaires

  1. [SQL-Server] Utilisation accent et de ' dans l'affichage - PHP et Sql Serveur
    Par gweared dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/08/2017, 14h04
  2. Réponses: 8
    Dernier message: 18/06/2010, 13h32
  3. [FLASH MX2004] Problème accent dans un XML
    Par cinetryx dans le forum Flash
    Réponses: 10
    Dernier message: 30/05/2007, 00h26
  4. [CR][VB6] comment utiliser CR dans VB ?
    Par kouassi_denis dans le forum SDK
    Réponses: 2
    Dernier message: 26/01/2004, 16h20
  5. Table Access et Accents dans TDBGrid
    Par puzpuz_vannes dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/11/2003, 22h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo