IMAP SEARCH CHARSET与ISO-8859-1

时间:2012-10-02 14:09:34

标签: character-encoding imap iso-8859-1 thunderbird

我无法理解使用命令 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

进行编码

1 个答案:

答案 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字符并将其下转换为一个字节。