Gmail的imap擴展命令X-GM-RAW允許我在使用ascii查詢字符串時執行搜索。如果在查詢中使用utf-8字符,則imap會返回錯誤的響應。使用Gmail搜索utf-8字符串X-GM-RAW IMAP命令
應如何utf-8的輸入字符串進行編碼,使得X-GM-RAW搜索將正常工作。我不想失去靈活性,搜索特定的領域,如「主題」或「rfc833msgid」
感謝
Gmail的imap擴展命令X-GM-RAW允許我在使用ascii查詢字符串時執行搜索。如果在查詢中使用utf-8字符,則imap會返回錯誤的響應。使用Gmail搜索utf-8字符串X-GM-RAW IMAP命令
應如何utf-8的輸入字符串進行編碼,使得X-GM-RAW搜索將正常工作。我不想失去靈活性,搜索特定的領域,如「主題」或「rfc833msgid」
感謝
IMAP是不是8-bit clean,所以它必須使用多種不同的編碼來表示任何8-位數據。
類的東西文件夾和標籤 IMAP4使用Modified UTF-7表示這些字符。方便的是,修改過的utf7編碼的ascii數據本身編碼,因此通常不需要做任何特殊的處理。
對於消息頭(包括受試者)的文本被編碼爲Mime words。
最後atttachments通常被編碼爲Base64的或引用打印
我最好的猜測是,Gmail使用修改UTF7他們的X-GM-RAW查詢。我發現修改後的utf7的最佳參考實現是在IMAPClient python library
希望這有助於!
指定CHARSET UTF-8並在文字中發送UTF-8搜索詞。例如,要搜索你好,這是6個字節長在編碼時UTF-8:
A SEARCH CHARSET UTF-8 X-GM-RAW {6}
+ go ahead
你好
* SEARCH 15
a OK SEARCH completed (Success)
在這個例子中你實際上在第三行上發送的你好6字節UTF-8編碼。
這適用於接受astring的任何SEARCH關鍵字,包括SUBJECT和HEADER MESSAGE-ID。
我試過這個命令來搜索非ascii字符像日文..但我得到「錯誤的命令無法解析」錯誤。我只是發送6字節的UTF-8編碼的字符串像格式\ xE4 \ xBD \ xA0 \ xE5 \ xA5 \ xBD ..但仍然無法解決thid問題..請讓我知道編碼字符串格式 – 2014-12-30 09:17:02