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; }
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; }