contents
下一步: 启动 smail 和 上一级: 配置 elm 上一页: 全局 elm 选项

国家字符集

最近,有人提议修改 RFC-822 标准,以支持各种类型的消息,例如纯文本、二进制数据、Postscript 文件等。涵盖这些方面的标准和 RFC 集合通常被称为 MIME,或多用途互联网邮件扩展。 除此之外,这还让收件人知道在编写邮件时是否使用了标准 ASCII 以外的字符集,例如使用法语重音符或德语变音符。 elm 在一定程度上支持这一点。

elm 内部用于表示字符的字符集通常被称为 ISO-8859-1,这是它所符合的标准名称。 它也被称为 Latin-1。 任何使用此字符集中的字符的消息都应在其邮件头中包含以下行

           Content-Type: text/plain; charset=iso-8859-1
接收系统应识别此字段,并在显示消息时采取适当的措施。 text/plain 消息的默认字符集值为 us-ascii。

为了能够显示使用 ASCII 以外字符集的消息,elm 必须知道如何打印这些字符。 默认情况下,当 elm 收到字符集字段不是 us-ascii 的消息(或者内容类型不是 text/plain 的消息)时,它会尝试使用名为 metamail 的命令来显示消息。 需要使用 metamail 显示的消息在概览屏幕的第一列中以 `M' 显示。

由于 elm 的原生字符集是 ISO-8859-1,因此无需调用 metamail 即可显示使用此字符集的消息。 如果告知 elm 显示器理解 ISO-8859-1,它将不会使用 metamail,而是直接显示消息。 这可以通过在全局 elm.rc 中设置以下选项来完成

           displaycharset = iso-8859-1
请注意,即使您永远不会发送或接收任何实际包含 ASCII 以外字符的消息,也应该设置此选项。 这是因为发送此类消息的人通常会配置他们的邮件程序,默认情况下将正确的 Content-Type: 字段放入邮件头中,无论他们是否发送仅包含 ASCII 的消息。

但是,仅在 elm.rc 中设置此选项是不够的。 问题在于,当使用其内置寻呼器显示消息时,elm 会为每个字符调用一个库函数,以确定它是否可打印。 默认情况下,此函数只会将 ASCII 字符识别为可打印字符,并将所有其他字符显示为 ``?''. 您可以通过将环境变量 LC_CTYPE 设置为 ISO-8859-1 来克服此问题,这会告知库接受 Latin-1 字符为可打印字符。 自 libc-4.5.8 起,已提供对此功能和其他功能的支持。

当发送包含来自 ISO-8859-1 的特殊字符的消息时,您应确保在 elm.rc 文件中设置另外两个变量

           charset = iso-8859-1
           textencoding = 8bit
这使得 elm 在邮件头中将字符集报告为 ISO-8859-1,并将其作为 8 位值发送(默认情况下,所有字符都将剥离为 7 位)。

当然,这些选项中的任何一个也可以在私有 elmrc 文件中设置,而不是在全局文件中设置。


contents
下一步: 启动 smail 和 上一级: 配置 elm 上一页: 全局 elm 选项

安德鲁·安德森
Thu Mar 7 23:22:06 EST 1996