Monday, March 05, 2007

Mutt 中根据编码不同,自动用不同命令显示附件内容

很多邮件是 HTML 的,不过这些 HTML 只包含 HTML 语法,并不包含字符集提示等等内容,所以,如果这些 HTML 直接交给 w3m 或 lynx 处理,能否正确显示是要看运气的,我们不可能假设别人发来的邮件是相同编码的,更要命的是,很多情况下,根据内容无法区分 gb 编码和 latin-1 编码,乃至 utf-8 编码。

好在 mutt 会把 MIME 参数传送给 mailcap 的处理语句,这样,比如
Content-Type: text/html; charset=gb2312
这个 charset 也会作为变量 %{charset} 传送给命令行,所以,我们在 ~/.mailcap 里面设置
text/html; w3m -I %{charset} -T text/html ; nametemplate=%s.html; copiousoutput;
就可以把任意 text/html 内容转换成 utf-8,然后用 w3m 显示。

参考文献: 《Mutt 用户手册》第五章。

No comments: