summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/net/eww.el9
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)))