2012-04-11 15 views
0

Ich mache diese PHP-Seite, die Zugriff auf ein Google-Konto hat und dann alle E-Mails anzeigt. Ich habe einen Header = UTF-8 und Meta auch definiert, ich habe eine Menge PHP-Funktion verwendet, um die Ausgabe in UTF zu konvertieren, aber ich bekomme seltsame Symbole anstelle von ASCII-Sonderzeichen. Wie ç, é oder .PHP - ASCII Sonderzeichen (ohne MySQL)

header("Content-Type: text/html; charset: UTF-8"); 
    $message = imap_fetchbody($inbox,$email_number,2); 
    echo $message; 

Was die ausgegeben werden soll:

çççç 

Was erhalte ich:

=E7=E7=E7=E7 

Antwort

1

Verwenden imap_qprint (siehe ersten Kommentar auf dieser Seite für eine alternative Lösung).

+0

ich den ersten Kommentar verwendet ‚s Lösung, die eine, die es taten, vielen Dank. – JTFerreira

0

Es scheint ein bekanntes Problem zu sein, in Bezug auf den ersten Kommentar auf der imap_fetchbody PHP doc page.

Verwenden imap_qprint oder Kommentator Lösung verwenden:

<?php 
function ReplaceImap($txt) { 
    $carimap = array("=C3=A9", "=C3=A8", "=C3=AA", "=C3=AB", "=C3=A7", "=C3=A0", "=20", "=C3=80", "=C3=89"); 
    $carhtml = array("é", "è", "ê", "ë", "ç", "à", "&nbsp;", "À", "É"); 
    $txt = str_replace($carimap, $carhtml, $txt); 

    return $txt; 
} 

$mbox = imap_open("{imap.gmail.com:993/imap/ssl}INBOX", "login", "pass"); 
$no = 5; // Mail to show (mail number) 

$text = imap_fetchbody($mbox, $no, 1); 
$text = imap_utf8($text); 
$text = ReplaceImap($text); 
$text = nl2br($text); 

echo $text; 
?> 
+0

Durch den folgenden Kommentar habe ich folgendes verwendet: $ message = preg_replace ("/ \ = ([A-F] [A-F0-9]) /", "% $ 1", $ Nachricht); \t \t $ message = URL-Code ($ Nachricht); \t \t $ message = utf8_encode ($ message); – JTFerreira