From dfc79b341c4ae80fe3bae0c52cadee7c28a108fd Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Tue, 18 Oct 2011 06:09:32 -0400
Subject: [PATCH] Find charset in HTML meta tags if not specified in content-type header (#1488125)
---
program/include/rcube_imap.php | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/program/include/rcube_imap.php b/program/include/rcube_imap.php
index 8dfffe8..c35c877 100644
--- a/program/include/rcube_imap.php
+++ b/program/include/rcube_imap.php
@@ -2396,7 +2396,11 @@
if (!$skip_charset_conv) {
if (!$o_part->charset || strtoupper($o_part->charset) == 'US-ASCII') {
- $o_part->charset = $this->default_charset;
+ // try to extract charset information from HTML meta tag (#1488125)
+ if ($o_part->ctype_secondary == 'html' && preg_match('/<meta[^>]+charset=([a-z0-9-]+)/i', $body, $m))
+ $o_part->charset = strtoupper($m[1]);
+ else
+ $o_part->charset = $this->default_charset;
}
$body = rcube_charset_convert($body, $o_part->charset);
}
--
Gitblit v1.9.1