2010-08-12 7 views
2

J'ai testé la librairie IMAP de PHP. pour récupérer des emails à partir d'un compte GMAIL, mais je ne peux tout simplement pas essayer de faire en sorte que les caractères s'affichent correctement. Au début, j'étais proche de m'éclipser quand j'ai réalisé que je récupérais accidentellement les pièces jointes au lieu du corps du message - pas bien, mais maintenant quand cela est résolu, j'ai toujours des problèmes pour voir les messages réels avec approprié Les caractères suédois, comme åÅ äÄ öÖ qui apparaissent à la place comme leurs cousins ​​ASCII; =E4, =E5 - et ainsi de suite.caractères ASCII au lieu de caractères suédois?

Quelle est la meilleure façon de résoudre ce problème? J'ai testé toutes les fonctions de codage que je peux penser par moi-même - et cela ne fonctionnera pas ...

Merci!

Répondre

1

pas 100% sûr, mais il me semble que le contenu du message est cité imprimable encodée. Essayez quoted_printable_decode-http://www.php.net/manual/en/function.quoted-printable-decode.php

Si vous utilisez déjà l'extension IMAP, vous pouvez aussi essayer imap_qprint - http://www.php.net/manual/en/function.imap-qprint.php

+0

Salut Max! Merci beaucoup! Cela fonctionne avec certains messages, mais je crois que les paramètres de message sont différents. Très apprécié! Merci! – Industrial

+1

@Industrial: Il existe malheureusement plusieurs systèmes de codage qui pourraient être utilisés pour représenter les caractères non-ASCII. = E4, = E5, etc. sont imprimables entre guillemets, cela les décodera correctement, mais ne traitera pas d'autres schémas de codage. Obtenir ceux à afficher correctement nécessitera probablement de faire correspondre le jeu de caractères de votre document HTML à celui utilisé dans le message ... Bonne chance ... –

+0

Salut Dave, merci beaucoup pour votre aide! – Industrial

-2

Essayez cette

function fixEncoding($in_str) { 
     $cur_encoding = mb_detect_encoding($in_str) ; 
     if($cur_encoding == "UTF-8" && mb_check_encoding($in_str,"UTF-8")) 
     return $in_str; 
     else 
     return utf8_encode($in_str); 
    } 
+0

Ce ne convertit que ISO-8859-1 en UTF-8. – Artefacto

+0

Salut Vadim, je crains que ça ne marche pas non plus. Merci de votre aide! – Industrial

Questions connexes