diff options
author | thomascube <thomas@roundcube.net> | 2005-10-21 12:12:23 +0000 |
---|---|---|
committer | thomascube <thomas@roundcube.net> | 2005-10-21 12:12:23 +0000 |
commit | a95e0e174c48b7c5242b8969aef99838a52c41ee (patch) | |
tree | eb87cb9c33433269d2f2376e841e1d6d66eff667 /program/lib | |
parent | 7902df457d3401c83f78a6ddd48df1a7f07f68b1 (diff) |
Improved support for UTF-8 and other charsets
Diffstat (limited to 'program/lib')
-rw-r--r-- | program/lib/Mail/mimeDecode.php | 2 | ||||
-rw-r--r-- | program/lib/imap.inc | 9 | ||||
-rw-r--r-- | program/lib/utf8.inc | 4 |
3 files changed, 11 insertions, 4 deletions
diff --git a/program/lib/Mail/mimeDecode.php b/program/lib/Mail/mimeDecode.php index 07fe88f6e..851481434 100644 --- a/program/lib/Mail/mimeDecode.php +++ b/program/lib/Mail/mimeDecode.php @@ -247,7 +247,7 @@ class Mail_mimeDecode extends PEAR $return->ctype_primary = $regs[1]; $return->ctype_secondary = $regs[2]; } - + if (isset($content_type['other'])) { while (list($p_name, $p_value) = each($content_type['other'])) { $return->ctype_parameters[$p_name] = $p_value; diff --git a/program/lib/imap.inc b/program/lib/imap.inc index 22757ba82..3d37bed17 100644 --- a/program/lib/imap.inc +++ b/program/lib/imap.inc @@ -1239,8 +1239,13 @@ function iil_C_FetchHeaders(&$conn, $mailbox, $message_set){ $result[$id]->cc = str_replace("\n", " ", $headers["cc"]); $result[$id]->encoding = str_replace("\n", " ", $headers["content-transfer-encoding"]); $result[$id]->ctype = str_replace("\n", " ", $headers["content-type"]); - //$result[$id]->in_reply_to = ereg_replace("[\n<>]",'', $headers['in-reply-to']); - list($result[$id]->ctype,$foo) = explode(";", $headers["content-type"]); + $result[$id]->in_reply_to = ereg_replace("[\n<>]",'', $headers['in-reply-to']); + + list($result[$id]->ctype, $ctype_add) = explode(";", $headers["content-type"]); + + if (preg_match('/charset="?([a-z0-9\-]+)"?/i', $ctype_add, $regs)) + $result[$id]->charset = $regs[1]; + $messageID = $headers["message-id"]; if ($messageID) $messageID = substr(substr($messageID, 1), 0, strlen($messageID)-2); else $messageID = "mid:".$id; diff --git a/program/lib/utf8.inc b/program/lib/utf8.inc index 72a96b4e9..43ecb328b 100644 --- a/program/lib/utf8.inc +++ b/program/lib/utf8.inc @@ -88,7 +88,9 @@ function utf8ToUnicodeEntities ($source) { $thisPos++; } - if ($thisLen == 1) + if ($decimalCode<128) + $encodedLetter = chr($decimalCode); + else if ($thisLen == 1) $encodedLetter = "&#". str_pad($decimalCode, 3, "0", STR_PAD_LEFT) . ';'; else $encodedLetter = "&#". str_pad($decimalCode, 5, "0", STR_PAD_LEFT) . ';'; |