即時閱讀粘貼到電子郵件正文中一個日誌文件編碼俄羅斯語言,有些是在各種不同的語言和所有語言字符似乎除了俄羅斯的正確顯示。使用imap_fetch如果從Gmail
以下是對俄羅斯說,在日誌文件中的一個例子:
Ссылканаобъектнеуказываетнаэкземпляробъекта。
в
從我讀書,我需要對行指定mb_encoding的解碼和編碼的東西(UTF-8),但我是一個有點失去了實際結構而不會影響代碼怎麼說不是俄語。但是,當回波輸出它被轉換成這樣的:
СÑÑ
下面是使用已有的代碼的IM,我是一個PHP初學者和一些這個心不是我的代碼,我已經編輯,以適應,但不是100%的東西都是這樣做的:
$mailbox = "[email protected]";
$mailboxPassword = "xxx";
$mailbox = imap_open("{imap.gmail.com:993/imap/ssl}INBOX",
$mailbox, $mailboxPassword);
mb_internal_encoding("UTF-8");
$subject = mb_decode_mimeheader(str_replace('_', ' ', $subject));
$body = imap_fetchbody($mailbox, $val, 1);
$body = base64_decode($body);
echo $body;
有一次,我echo
出身體從俄羅斯轉換成編碼,類似代碼的任何指針,我可以解剖,以瞭解如何解決這一問題?
請記住,從電子郵件中讀取了大量的語言,大部分只是它的幾個片段,其餘的是基本的日誌記錄,但我擔心的是如果我設置一個新的解碼,它會混亂高達其他語言的字符
感謝您的詳細解答,我嘗試通過以下方式訪問電子郵件字符集: $ headers1 = imap_fetchstructure($ mailbox,$ val); 但即使俄羅斯的電子郵件都顯示爲UTF-8,所以我不知道如何找出哪些我必須做 – user1547410
@ user1547410 mb_convert_encoding我不明白你說什麼,請重新說明它。另外,如果發件人程序在你的控制之下,你可以檢查它的方面知道郵件的編碼 – Raffaele
基本上我試圖找到$ input_charset的正確值。我以爲我可能會在imap_fetch結構中找到它,但是一切都會返回說它的UTF-8。 我沒有控制發送原始郵件的程序 – user1547410