2

我在 Gnus v5.13 中使用 GNU Emacs 24.2.1(但在 Emacs 上它也不能正常工作),并按如下方式配置它以使用 Lynx 格式化 HTML 邮件:

(setq 'mm-text-html-renderer 'lynx)
(setcdr (assoc 'lynx mm-text-html-renderer-alist)
        '(mm-inline-render-with-stdin
          nil "lynx" "-dump" "-force_html" "-stdin" "-display_charset=UTF-8"))

但是 UTF-8 字符显示不正确,例如我看到这样的内容:

Es gibt \303\274ber 700 neue Top-Level-Domains.

可以使用以下命令轻松解决:

(toggle-read-only)
(recode-region (point-min) (point-max) 'utf-8 'utf-8)

但是是否有可能让 Gnus 将 Lynx 输出一般解释为 UTF-8?

(这个问题也被问到没有答案:http: //lists.gnu.org/archive/html/info-gnus-english/2010-06/msg00006.html

4

1 回答 1

0

我自己找到了答案,这里是使用 UTF-8 在 Gnus 中激活 Lynx 的完整代码:

(require 'mm-view)
(setq mm-text-html-renderer 'lynx)
(setcdr (assoc 'lynx mm-text-html-renderer-alist)
        '(mm-inline-render-with-stdin
          nil "lynx" "-dump" "-force_html" "-stdin" "-display_charset=UTF-8"))

(defvar mm-insert-inline-use-utf-8 nil)

(defadvice mm-insert-inline (around mm-insert-inline-utf-8)
  (let ((x (point)))
    (prog1 (progn ad-do-it)
      (when mm-insert-inline-use-utf-8
        (decode-coding-region x (point-max) 'utf-8)))))
(ad-activate 'mm-insert-inline)

(defadvice mm-inline-text-html (around mm-inline-text-html-utf-8)
  (let ((mm-insert-inline-use-utf-8 t))
    ad-do-it))
(ad-activate 'mm-inline-text-html)
于 2013-11-19T19:31:48.237 回答