diff --git a/lisp/net/sieve-manage.el b/lisp/net/sieve-manage.el index 50342b9105..8020e6fdca 100644 --- a/lisp/net/sieve-manage.el +++ b/lisp/net/sieve-manage.el @@ -449,10 +449,19 @@ sieve-manage-deletescript (defun sieve-manage-getscript (name output-buffer &optional buffer) (with-current-buffer (or buffer (current-buffer)) (sieve-manage-send (format "GETSCRIPT \"%s\"" name)) + (set-buffer-multibyte nil) (let ((script (sieve-manage-parse-string))) + (set-buffer-multibyte t) (sieve-manage-parse-crlf) (with-current-buffer output-buffer - (insert script)) + (insert (decode-coding-string + script + ;; not sure if using `buffer-file-coding-system' is + ;; the right approach, it might be better to hardcode + ;; it to utf-8-* (managesieve requires UTF-8 + ;; encoding) but in that case, which variant of + ;; utf-8-unix/dos/... is to be used? + buffer-file-coding-system t))) (sieve-manage-parse-okno)))) (defun sieve-manage-setactive (name &optional buffer)