- Add support for SJIS, GB2312, BIG5 in rc_detect_encoding()

- Fix vCard file encoding detection for non-UTF-8 strings (#1485410)
release-0.6
alecpl 16 years ago
parent 0bfbe62ab0
commit abdc5898b6

@ -1,6 +1,10 @@
CHANGELOG RoundCube Webmail CHANGELOG RoundCube Webmail
--------------------------- ---------------------------
2008/10/03 (alec)
- Add support for SJIS, GB2312, BIG5 in rc_detect_encoding()
- Fix vCard file encoding detection for non-UTF-8 strings (#1485410)
2008/10/02 (alec) 2008/10/02 (alec)
---------- ----------
- Minimize "inline" javascript scripts use (#1485433) - Minimize "inline" javascript scripts use (#1485433)

@ -249,17 +249,17 @@ function show_bytes($bytes)
if ($bytes > 1073741824) if ($bytes > 1073741824)
{ {
$gb = $bytes/1073741824; $gb = $bytes/1073741824;
$str = sprintf($gb>=10 ? "%d " : "%.1f ", $gb) . rcube_label('GB'); $str = sprintf($gb>=10 ? "%d GB" : "%.1f GB", $gb);
} }
else if ($bytes > 1048576) else if ($bytes > 1048576)
{ {
$mb = $bytes/1048576; $mb = $bytes/1048576;
$str = sprintf($mb>=10 ? "%d " : "%.1f ", $mb) . rcube_label('MB'); $str = sprintf($mb>=10 ? "%d MB" : "%.1f MB", $mb);
} }
else if ($bytes > 1024) else if ($bytes > 1024)
$str = sprintf("%d ", round($bytes/1024)) . rcube_label('KB'); $str = sprintf("%d KB", round($bytes/1024));
else else
$str = sprintf('%d ', $bytes) . rcube_label('B'); $str = sprintf('%d B', $bytes);
return $str; return $str;
} }
@ -548,10 +548,12 @@ function rc_detect_encoding($string, $failover='')
// FIXME: the order is important, because sometimes // FIXME: the order is important, because sometimes
// iso string is detected as euc-jp and etc. // iso string is detected as euc-jp and etc.
$enc = array( $enc = array(
'UTF-8', 'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4', 'SJIS', 'BIG5', 'GB2312', 'UTF-8',
'ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4',
'ISO-8859-5', 'ISO-8859-6', 'ISO-8859-7', 'ISO-8859-8', 'ISO-8859-9', 'ISO-8859-5', 'ISO-8859-6', 'ISO-8859-7', 'ISO-8859-8', 'ISO-8859-9',
'ISO-8859-10', 'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15', 'ISO-8859-16', 'ISO-8859-10', 'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15', 'ISO-8859-16',
'WINDOWS-1252', 'WINDOWS-1251', 'EUC-JP', 'EUC-TW', 'KOI8-R' 'WINDOWS-1252', 'WINDOWS-1251', 'EUC-JP', 'EUC-TW', 'KOI8-R',
'ISO-2022-KR', 'ISO-2022-JP'
); );
$result = mb_detect_encoding($string, join(',', $enc)); $result = mb_detect_encoding($string, join(',', $enc));

@ -396,6 +396,9 @@ class rcube_vcard
if (substr($string, 0, 2) == "\xFF\xFE") return 'UTF-16LE'; // Little Endian if (substr($string, 0, 2) == "\xFF\xFE") return 'UTF-16LE'; // Little Endian
if (substr($string, 0, 3) == "\xEF\xBB\xBF") return 'UTF-8'; if (substr($string, 0, 3) == "\xEF\xBB\xBF") return 'UTF-8';
if ($enc = rc_detect_encoding($string))
return $enc;
// No match, check for UTF-8 // No match, check for UTF-8
// from http://w3.org/International/questions/qa-forms-utf-8.html // from http://w3.org/International/questions/qa-forms-utf-8.html
if (preg_match('/\A( if (preg_match('/\A(

Loading…
Cancel
Save