Esempio n. 1
0
 function toUtf8($string)
 {
     //mb_string
     if (function_exists('mb_convert_encoding')) {
         $in_charset = defined('_CHARSET') ? _CHARSET : mb_internal_encoding();
         $in_charset = strtoupper($in_charset);
         if ('UTF-8' == $in_charset) {
             return $string;
         }
         if ($in_charset == 'GB2312') {
             $in_charset = 'EUC-CN';
         }
         $converted_text = @mb_convert_encoding($string, 'UTF-8', $in_charset);
         return $converted_text;
     }
     if (defined('_CHARSET') && strtoupper(_CHARSET) == 'UTF-8') {
         return $string;
     }
     //xml_ parser
     if (function_exists('utf8_encode')) {
         $converted_text = utf8_encode($string);
         return $converted_text;
     }
     if (!defined('_CHARSET')) {
         return $string;
     }
     $in_charset = strtoupper(_CHARSET);
     $out_charset = 'UTF-8';
     //chinese
     if (substr($GLOBALS['xoopsConfig']['language'], 1, 7) == 'chinese') {
         if (function_exists("xoopschina_convert_encoding")) {
             $converted_text = xoopschina_convert_encoding($string, $in_charset, $out_charset);
             return $converted_text;
         }
         $xconv_handler = @xoops_getmodulehandler('xconv', 'xconv', true);
         if ($in_charset == 'GB2312') {
             $in_charset = 'EUC-CN';
         }
         if ($xconv_handler && ($converted_text = @$xconv_handler->convert_encoding($string, $out_charset, $in_charset))) {
             return $converted_text;
         }
     }
     //iconv
     if (function_exists('iconv')) {
         if ($in_charset == 'GB2312') {
             $in_charset = 'EUC-CN';
         }
         $converted_text = @iconv($in_charset, $out_charset . "//TRANSLIT", $string);
         if (!empty($converted_text) && $converted_text != '') {
             return $converted_text;
         }
     }
     return $string;
 }
Esempio n. 2
0
 function _encoding(&$text, $in_charset, $out_charset)
 {
     if (function_exists("xoopschina_convert_encoding")) {
         $text = xoopschina_convert_encoding($text, $in_charset, $out_charset);
         return;
     }
     $xconv_handler = @xoops_getmodulehandler('xconv', 'xconv', true);
     if ($xconv_handler && ($converted_text = @$xconv_handler->convert_encoding($text, $out_charset, $in_charset))) {
         $text = $converted_text;
         return;
     }
     if (XOOPS_USE_MULTIBYTES && function_exists('mb_convert_encoding')) {
         $converted_text = @mb_convert_encoding($text, $out_charset, $in_charset);
     } else {
         if (function_exists('iconv')) {
             $converted_text = @iconv($in_charset, $out_charset . "//TRANSLIT", $text);
         }
     }
     $text = empty($converted_text) ? $text : $converted_text;
 }