我无法理解使用命令 IMAP SEARCH CHARSET
在IMAP服务器上搜索时使用 Tunderbird 的编码方法我试图搜索俄语单词“привет”,这被映射到“?@ 825B”,即
A001 SEARCH CHARSET ISO-8859-1 BODY "?@825B"
怎么会这样?我确定这是正确的,因为我已经使用了嗅探器来捕捉这个并且 Dovecot 服务器正确地找到了带有“привет”字样的邮件。 ISO-8859-1编码根本没有俄文字形!那它是如何被转换的?
例如,“привет”(写为Unicode字符)为 ISO-8859-1 “??????” >在我的机器上或在此http://www.motobit.com/util/charset-codepage-conversion.asp
进行编码答案 0 :(得分:0)
Thunderbird获得此值的方式是将一个(16位?)Unicode字符向下转换为一个字节。
例如,在C#中(内部将UTF-16用于其char和string类型),将得到您看到的结果:
const string text = "привет";
var buffer = new char[text.Length];
for (int i = 0; i < text.Length; i++)
buffer[i] = (char) ((byte) text[i]);
var result = new string (buffer);
雷鸟如何处理代理对是任何人根据问题已知的猜测。它可能会将代理对视为2个单独的字符(就像我上面的代码一样),或者可能将它们组合成32位unicode字符并将其下转换为一个字节。