summaryrefslogtreecommitdiff
path: root/program/include/main.inc
diff options
context:
space:
mode:
Diffstat (limited to 'program/include/main.inc')
-rw-r--r--program/include/main.inc10
1 files changed, 6 insertions, 4 deletions
diff --git a/program/include/main.inc b/program/include/main.inc
index 5a47242e3..b940e2a13 100644
--- a/program/include/main.inc
+++ b/program/include/main.inc
@@ -1077,16 +1077,18 @@ function rcube_charset_convert($str, $from, $to=NULL)
// convert charset using iconv module
if (function_exists('iconv') && $from != 'UTF-7' && $to != 'UTF-7')
- return iconv($from, $to . "//IGNORE", $str);
+ {
+ $iconv_map = array('KS_C_5601-1987' => 'EUC-KR');
+ return iconv(($iconv_map[$from] ? $iconv_map[$from] : $from), ($iconv_map[$to] ? $iconv_map[$to] : $to) . "//IGNORE", $str);
+ }
// convert charset using mbstring module
if ($MBSTRING)
{
- $to = $to=="UTF-7" ? "UTF7-IMAP" : $to;
- $from = $from=="UTF-7" ? "UTF7-IMAP": $from;
+ $mb_map = array('UTF-7' => 'UTF7-IMAP', 'KS_C_5601-1987' => 'EUC-KR');
// return if convert succeeded
- if (($out = mb_convert_encoding($str, $to, $from)) != '')
+ if (($out = mb_convert_encoding($str, ($mb_map[$to] ? $mb_map[$to] : $to), ($mb_map[$from] ? $mb_map[$from] : $from))) != '')
return $out;
}