diff options
-rw-r--r-- | lisp/net/eww.el | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lisp/net/eww.el b/lisp/net/eww.el index bda4e0cfec2..6a315496fe0 100644 --- a/lisp/net/eww.el +++ b/lisp/net/eww.el @@ -564,6 +564,15 @@ Currently this means either text/html or application/xhtml+xml." (delete-region (point-min) (point-max)) (insert (or source "no source")) (goto-char (point-min)) + ;; Decode the source and set the buffer's encoding according + ;; to what the HTML source specifies in its 'charset' header, + ;; if any. + (let ((cs (find-auto-coding "" (point-max)))) + (when (consp cs) + (setq cs (car cs)) + (when (coding-system-p cs) + (decode-coding-region (point-min) (point-max) cs) + (setq buffer-file-coding-system last-coding-system-used)))) (when (fboundp 'html-mode) (html-mode)))) (view-buffer buf))) |