From 0426c50f8254bb4bfff6ef49ddc2a4a05264608b Mon Sep 17 00:00:00 2001 From: alec Date: Thu, 10 Nov 2011 08:18:54 +0000 Subject: - Fix problem with parsing HTML message body with non-unicode characters (#1487813) git-svn-id: https://svn.roundcube.net/trunk@5407 208e9e7b-5314-0410-a742-e7e81cd9613c --- roundcubemail/CHANGELOG | 1 + roundcubemail/program/steps/mail/func.inc | 3 +++ roundcubemail/tests/mailfunc.php | 11 +++++++++++ roundcubemail/tests/src/invalidchars.html | 1 + 4 files changed, 16 insertions(+) create mode 100644 roundcubemail/tests/src/invalidchars.html diff --git a/roundcubemail/CHANGELOG b/roundcubemail/CHANGELOG index b8688b2b8..3f7468b9b 100644 --- a/roundcubemail/CHANGELOG +++ b/roundcubemail/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/roundcubemail/program/steps/mail/func.inc b/roundcubemail/program/steps/mail/func.inc index 39c25f19c..8407b06cd 100644 --- a/roundcubemail/program/steps/mail/func.inc +++ b/roundcubemail/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/roundcubemail/tests/mailfunc.php b/roundcubemail/tests/mailfunc.php index 9d70befeb..c6081a266 100644 --- a/roundcubemail/tests/mailfunc.php +++ b/roundcubemail/tests/mailfunc.php @@ -99,6 +99,17 @@ class rcube_test_mailfunc extends UnitTestCase $this->assertNoPattern('/font-style:italic/', $washed, "Allow valid styles"); } + /** + * 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>/', $washed, "Remove non-unicode characters from HTML message body"); + } + /** * Test links pattern replacements in plaintext messages */ diff --git a/roundcubemail/tests/src/invalidchars.html b/roundcubemail/tests/src/invalidchars.html new file mode 100644 index 000000000..bd460eab1 --- /dev/null +++ b/roundcubemail/tests/src/invalidchars.html @@ -0,0 +1 @@ +

символ

-- cgit v1.2.3