2012-04-11 3 views
0

Я делаю эту страницу PHP, имеющую доступ к учетной записи Google, и чем показывает все электронные письма. Я определил заголовок = UTF-8 и мета тоже, я использовал много функций PHP для преобразования вывода в UTF, но я продолжаю получать странные значки вместо специальных символов ASCII. Например, ç, é или ã.PHP - специальные символы ASCII (без MySQL)

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

Что должно быть на выходе:

çççç 

Что я получаю:

=E7=E7=E7=E7 

ответ

1

Использование imap_qprint (см первый комментарий на этой странице, для альтернативного решения).

+0

Я использовал первый комментарий «s растворный, что сделали это, спасибо много. – JTFerreira

0

Это, похоже, известная проблема, касающаяся первого комментария к imap_fetchbody PHP doc page.

Использование imap_qprint или использовать раствор комментатора:

<?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

Прочитав комментарий ниже, я использовал это: $ message = preg_replace ("/ \ = ([A-F] [A-F0-9]) /", "% $ 1", $ message); \t \t $ message = urldecode ($ message); \t \t $ message = utf8_encode ($ message); – JTFerreira

Смежные вопросы