Кодирование китайских символов работает с Hotmail, но не с Gmail или Yahoo - PullRequest
0 голосов
/ 08 ноября 2011

Мне удалось получить тело письма китайскими иероглифами с помощью Hotmail через IMAP, но с Gmail или Yahoo это не сработало.Я не знаю почему:

$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "info@*******.com", "********");

$email="mail@hotmail.com";

$num_mensaje = imap_search($mbox,"FROM $email");

$body =  imap_fetchbody($mbox,$num_mensaje[0],"1");

$str =  mb_convert_encoding($body,"UTF-8","big5,EUC-CN");

1 Ответ

0 голосов
/ 08 ноября 2011

Посмотрите содержимое заголовка Content-Transfer-Encoding в сообщении электронной почты.Он сообщит вам, в каком формате находится тело письма, и будет определять, как его декодировать.

Передаваемые кодировки, которые вам необходимо будет поддерживать, включают:

  • 7bit, 8bit или binary: эти форматы не требуют предварительной обработки.
  • quoted-printable: используйте функцию quoted_printable_decode.
  • base64: используйтеbase64_decode.

После того, как вы обработали кодировку передачи, ТО вы можете применить mb_convert_encoding.

...