Make sure mbstring susbtitute character is set to empty string in rcube_charset::clean()

pull/176/head
Aleksander Machniak 11 years ago
parent db3a14b405
commit faa9c89236

@ -759,7 +759,12 @@ class rcube_charset
// iconv/mbstring are much faster (especially with long strings) // iconv/mbstring are much faster (especially with long strings)
if (function_exists('mb_convert_encoding')) { if (function_exists('mb_convert_encoding')) {
if (($res = mb_convert_encoding($input, 'UTF-8', 'UTF-8')) !== false) { $msch = mb_substitute_character('none');
mb_substitute_character('none');
$res = mb_convert_encoding($input, 'UTF-8', 'UTF-8');
mb_substitute_character($msch);
if ($res !== false) {
return $res; return $res;
} }
} }
@ -795,8 +800,8 @@ class rcube_charset
} }
$seq = ''; $seq = '';
$out .= $chr; $out .= $chr;
// first (or second) byte of multibyte sequence
} }
// first (or second) byte of multibyte sequence
else if ($ord >= 0xC0) { else if ($ord >= 0xC0) {
if (strlen($seq) > 1) { if (strlen($seq) > 1) {
$out .= preg_match($regexp, $seq) ? $seq : ''; $out .= preg_match($regexp, $seq) ? $seq : '';
@ -806,8 +811,8 @@ class rcube_charset
$seq = ''; $seq = '';
} }
$seq .= $chr; $seq .= $chr;
// next byte of multibyte sequence
} }
// next byte of multibyte sequence
else if ($seq) { else if ($seq) {
$seq .= $chr; $seq .= $chr;
} }

Loading…
Cancel
Save