我已经非常了解语法了:
本地地址簿(或远程地址簿的本地缓存文件)是简单的文本文件,其行格式为:
<nickname>TAB<fullname>TAB<address>TAB<fcc>TAB<comments>
最后两个字段是可选的。一个“行”可以由文件中的多个实际行通过使用连续行(以空格字符开头的行)组成。换行符可能在制表符之后或在分发列表中的地址之间。文件中的每个实际行的长度必须少于 1000 个字符。
这直接引自页面: Alpine 官方消息传递系统主页上的Alpine Technical Notes页面。我不知道的部分,现在有一个漂亮的上帝猜测,是关于它如何处理 utf-8 字符的部分。似乎对于每个字段<nickname>
、<fullname>
、<address>
、<fcc>
和<comments>
,如果该字段包含某些“特定”字符,例如 æ、ø 或 å,则=?UTF-8?Q?
放置在该字段的开头和?=
末尾。现在,在这两个标记之间放置字段的内容,但空格替换为og_
替换“某些”字符,具体取决于字符 UTF-8 代码是或者只是=XX=YY
=YY
XX YY
YY
. 作为一个例子ø
被替换为=C3=B8
,因为 UTF-8 代码ø
是C3 B8
. 此外,å
、!
和;
分别被替换为=C3=A5
、=21
和=3B
,因为它们的 UTF-8 代码分别是C3 A5
、21
和3B
。
注意:我不确定是哪些字符使 Alpine 实现了标签=?UTF-8?Q?
和?=
,但我知道它的字符数少于转换为 UTF-8 代码的字符数。例如,一个字段包含
sorensen, soren
只会写成 af sorensen, soren
,但一个字段包含
sørensen, søren
将被转换为
=?UTF-8?Q?s=C3=B8rensen=2C_s=C3=B8ren?=
我并不完全确定这是否正确,但就我查看的地址簿而言,这似乎是一个非常好的猜测。