2016-10-10 5 views
0

Я пытаюсь разобрать электронное письмо, которое частично написано на английском языке и частично написано на японском языке с помощью PHP. Вот код, который я до сих пор:Как я могу получить символы Unicode из IMAP в PHP?

if ($mbox = imap_open($mailbox, $username, $password)) { 

    $inbox = imap_check($mbox); 
    $total = (int) $inbox->Nmsgs; 
    $min = max(1, $total - 10); 

    // fetch 10 most recent emails 
    if ($total > 0 && ($emails = imap_fetch_overview($mbox, "{$min}:{$total}"))) { 

     foreach ($emails as $email) { 

      $body = imap_body($mbox, $email->uid, FT_UID); 

      // for testing purposes 
      echo $body; 

      // parsing logic here 

     } 
    } 
} 

Так как вы можете видеть, я просто вторя из открытого текста тела письма, просто чтобы проверить вещи, и вот часть вторит ответ я получаю, когда я бегу этот скрипт:

Ваше японское слово дня: ç»· ã®å

Однако, следующее, что я должен видеть вместо этого, основываясь на том, что на самом деле в адрес электронной почты:

Ваше японское слово дня: 男 の 子

Так ясно что-то теряется в переводе (каламбур). Я использую некоторые простые манипуляции с строками, чтобы попытаться разобрать японские символы, а затем вставить их в базу данных MySQL. Однако в настоящее время они вставляют эти символы gobbledygook. Что мне не хватает?

Edit: Я использую PHP версии 5.4.45

+0

Где вы «эхо»? Какова кодировка места, на которое вы эхом отзываетесь? – zerkms

+0

Просто к окну моего браузера – SoaperGEM

+0

А для чего это кодировка? – zerkms

ответ

0

Так что я не совсем уверен, как получить эту работу в PHP 5. Я решил попробовать модернизировать мой сервер на PHP 7 и вдруг все из код только начал работать.