我有一個函數,用於將郵件從一個文件夾移動到另一個gmail賬戶上。 該功能在移動郵件時功能完整。我的問題出現在使用utf-8編碼郵箱的 。我解碼IMAP文件夾列表響應 但兩個值的轉儲給出不同的結果。IMAP編碼和解碼:UTF-8問題
// Getting the folders
$folders = imap_list(CONNECTION, MAILBOX, PATTERN);
// After a foreach, stripping slash, prefix and such
// $folder is the raw mailbox name from the IMAP list
$mailbox = utf8_encode(imap_utf7_decode($folder)); // = string(12) "Tæstbåks"
// The entered search from the client
$search_for = "Tæstbåks"; // = string(10) "Tæstbåks"
if($search_for == $mailbox)
print "Yeah!";
else
print "Noo!";
我不知道爲什麼那兩個字符串不匹配,那是我的問題。
打印兩者的'bin2hex()'。另外,你爲什麼使用'utf8_encode'? – Esailija 2013-04-04 09:29:37
我正在使用'utf8_encode()'將其格式設置爲正確的查看。嘗試了不同編碼的dosins,這是唯一一種以正確的格式返回郵箱的方法。 關於'BIN2HEX()'函數兩者的返回值如下: IMAP郵箱=字符串(24) 「5400c3a673746200c3a56b73」 Serach_for =字符串(20) 「54c3a6737462c3a56b73」 因此,他們依舊不匹配 – 2013-04-04 09:45:50
但它只是從ISO-8859-1轉換爲UTF-8。如果您的輸入不是ISO-8859-1,那麼它會失敗,如您所見。 – Esailija 2013-04-04 09:48:09