summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2011-11-10 08:18:54 +0000
committeralecpl <alec@alec.pl>2011-11-10 08:18:54 +0000
commitd61756663c599121fb1042ffb8b4817d84bde10e (patch)
tree45c89cb3d5552d915749f30855bad3a102420e70
parentf21a04c024e57d2396c6a8ab78b055de098217ee (diff)
- Fix problem with parsing HTML message body with non-unicode characters (#1487813)
-rw-r--r--CHANGELOG1
-rw-r--r--program/steps/mail/func.inc3
-rw-r--r--tests/mailfunc.php11
-rw-r--r--tests/src/invalidchars.html1
4 files changed, 16 insertions, 0 deletions
diff --git a/CHANGELOG b/CHANGELOG
index b8688b2b8..3f7468b9b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Fix problem with parsing HTML message body with non-unicode characters (#1487813)
- Add option to define matching method for addressbook search (#1486564, #1487907)
- Make email recipients separator configurable
- Fix so folders with \Noinferiors attribute aren't listed in parent selector
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 39c25f19c..8407b06cd 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -639,6 +639,9 @@ function rcmail_wash_html($html, $p = array(), $cid_replaces)
if (!$p['skip_washer_style_callback'])
$washer->add_callback('style', 'rcmail_washtml_callback');
+ // Remove non-UTF8 characters (#1487813)
+ $html = rc_utf8_clean($html);
+
$html = $washer->wash($html);
$REMOTE_OBJECTS = $washer->extlinks;
diff --git a/tests/mailfunc.php b/tests/mailfunc.php
index 9d70befeb..c6081a266 100644
--- a/tests/mailfunc.php
+++ b/tests/mailfunc.php
@@ -100,6 +100,17 @@ class rcube_test_mailfunc extends UnitTestCase
}
/**
+ * Test washtml class on non-unicode characters (#1487813)
+ */
+ function test_washtml_utf8()
+ {
+ $part = $this->get_html_part('src/invalidchars.html');
+ $washed = rcmail_print_body($part);
+
+ $this->assertPattern('/<p>символ<\/p>/', $washed, "Remove non-unicode characters from HTML message body");
+ }
+
+ /**
* Test links pattern replacements in plaintext messages
*/
function test_plaintext()
diff --git a/tests/src/invalidchars.html b/tests/src/invalidchars.html
new file mode 100644
index 000000000..bd460eab1
--- /dev/null
+++ b/tests/src/invalidchars.html
@@ -0,0 +1 @@
+<p>символ</p>