From d3c2fbf2d6d65f3d990d6b74eb2fc04ccea810b1 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Wed, 29 Aug 2012 03:46:40 -0400
Subject: [PATCH] Fix decoding of HTML messages with UTF-16 charset specified (#1488654)
---
CHANGELOG | 1 +
program/include/rcube_charset.php | 6 ++++++
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
index 9a7fa97..c051139 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Fix decoding of HTML messages with UTF-16 charset specified (#1488654)
- Fix quota capability detection so it can be overwritten by a plugin (#1488655)
- Fix identity selection on reply (#1488101)
- Fix Larry's messages list filter in IE (#1488632)
diff --git a/program/include/rcube_charset.php b/program/include/rcube_charset.php
index 7e8fe49..fc1685d 100644
--- a/program/include/rcube_charset.php
+++ b/program/include/rcube_charset.php
@@ -185,6 +185,12 @@
$to = empty($to) ? strtoupper(RCMAIL_CHARSET) : self::parse($to);
$from = self::parse($from);
+ // It is a common case when UTF-16 charset is used with US-ASCII content (#1488654)
+ // In that case we can just skip the conversion (use UTF-8)
+ if ($from == 'UTF-16' && !preg_match('/[^\x00-\x7F]/', $str)) {
+ $from = 'UTF-8';
+ }
+
if ($from == $to || empty($str) || empty($from)) {
return $str;
}
--
Gitblit v1.9.1