--- mm-decode.el~ 2018-02-28 02:01:37.897607000 +0000 +++ mm-decode.el 2018-03-13 03:27:56.885844100 +0000 @@ -1810,6 +1810,13 @@ (when (and (or coding (setq coding (mm-charset-to-coding-system charset nil t))) (not (eq coding 'ascii))) + ;; Remove extra bytes in utf-8 encoded data. + (when (eq coding 'utf-8) + (goto-char (point-min)) + (while (re-search-forward + "\\([\xc2-\xf7][\x80-\xbf]?\\)[\x00-\x7f]+\\([\x80-\xbf]\\)" + nil t) + (replace-match "\\1\\2"))) (insert (prog1 (decode-coding-string (buffer-string) coding) (erase-buffer)