diff options
-rw-r--r-- | program/lib/washtml.php | 2 | ||||
-rw-r--r-- | program/steps/mail/func.inc | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/program/lib/washtml.php b/program/lib/washtml.php index 7e1e0cd6d..73a02c6d3 100644 --- a/program/lib/washtml.php +++ b/program/lib/washtml.php @@ -187,8 +187,6 @@ class washtml //Charset seems to be ignored (probably if defined in the HTML document) $node = new DOMDocument('1.0', $config['charset']); $full = true; - if (function_exists('mb_convert_encoding')) - $html = mb_convert_encoding($html, 'HTML-ENTITIES', $config['charset']); @$node->loadHTML($html); return self::dumpHtml($node, $config, $full); } diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc index 79a84ccb4..f4b18411e 100644 --- a/program/steps/mail/func.inc +++ b/program/steps/mail/func.inc @@ -534,12 +534,15 @@ function rcmail_print_body($part, $safe=false, $plain=false) } // text/html else if ($part->ctype_secondary == 'html') { + // charset was converted to UTF-8 in rcube_imap::get_message_part() -> change charset specification in HTML accordingly + $html = preg_replace('/(\s+content=[\'"]\w+\/\w+;\s+charset)=([a-z0-9-]+)/i', '\\1='.RCMAIL_CHARSET, $part->body); + // clean HTML with washhtml by Frederic Motte - $body = washtml::wash($part->body, array( + $body = washtml::wash($html, array( 'show_washed' => false, 'allow_remote' => $safe, 'blocked_src' => "./program/blocked.gif", - 'charset' => 'UTF-8', + 'charset' => RCMAIL_CHARSET, 'cid_map' => $part->replaces, ), $full_inline); |