【发布时间】:2012-09-23 09:39:24
【问题描述】:
我不明白使用 Tunderbird 命令在 IMAP 服务器上搜索时使用什么编码方法 IMAP SEARCH CHARSET
我尝试搜索俄语单词“привет”,它被映射到“?@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
【问题讨论】:
-
您拥有的字符串看起来一点也不像 UTF-8。事实上,它看起来像是一些传统的 8 位西里尔编码(KOI-8?CP1251?)被剥夺了第八位。我们只能推测这发生在哪里。一个好的开始是实际字节的十六进制转储。
-
为什么你认为“привет”这个词的符号在 UTF-8 中不存在?请参阅 UTF-8 的 HEX 转储:d0 bf d1 80 d0 b8 d0 b2 d0 b5 d1 82
-
是的,应该是这样,但是没有明显的从它到 "?@825B" 的映射,通常你也会得到与字节一样多的问号。所以我猜测传入的不是真正的 UTF-8。
-
如果不是 UTF-8,这是什么?我的默认系统字符集为 UTF-8,当我在键盘上输入单词“привет”到 Thunderbird 的搜索对话窗口时,我希望“привет”是用 UTF-8 编码编写的。不要?
-
另一端出来的东西是错的;没有办法从这些信息中推断出它到底哪里出了问题。这很可能是 Thunderbird 中的一个错误。
标签: character-encoding imap iso-8859-1 thunderbird