diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2009-10-22 18:37:00 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2009-10-22 18:37:00 +0000 |
| commit | 60fefb9649608247fbbf3dacb82987f1c6a7f745 (patch) | |
| tree | 78747ebc2ee0b103feb47af9482a42bfb3398ddc /roundcubemail/program/include | |
| parent | 12e387e68fab8da3428fb21200e5a225b384ddf2 (diff) | |
- fix rc_utf8_clean() on Windows (#1486232)
git-svn-id: https://svn.roundcube.net/trunk@3052 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/include')
| -rw-r--r-- | roundcubemail/program/include/rcube_shared.inc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/roundcubemail/program/include/rcube_shared.inc b/roundcubemail/program/include/rcube_shared.inc index d60291012..97314ccd1 100644 --- a/roundcubemail/program/include/rcube_shared.inc +++ b/roundcubemail/program/include/rcube_shared.inc @@ -599,12 +599,15 @@ function rc_utf8_clean($input) return $input; } - if (!is_string($input)) + if (!is_string($input) || $input == '') return $input; - // iconv is 10x faster - if (function_exists('iconv')) - return iconv('UTF8', 'UTF8//IGNORE', $input); + // iconv/mbstring are much faster (especially with long strings) + if (function_exists('mb_convert_encoding') && ($res = mb_convert_encoding($input, 'UTF8', 'UTF8'))) + return $res; + + if (function_exists('iconv') && ($res = iconv('UTF8', 'UTF8//IGNORE', $input))) + return $res; $regexp = '/^('. // '[\x00-\x7F]'. // UTF8-1 |
