예제 #1
0
function transliterate($str, $enc)
{
    // see this for hebraic-chinisee
    // http://www.derickrethans.nl/translit.php
    global $CONF_use_utf;
    if ($enc == 'gb2312') {
        // echo "#### $str $enc ##";
        if (!$CONF_use_utf) {
            require_once dirname(__FILE__) . "/lib/ConvertCharset/convert_gb2312.php";
            return gb2312_to_latin($str);
        } else {
            if (substr(phpversion(), 0, 1) >= 5) {
                require_once dirname(__FILE__) . "/lib/ConvertCharset/chinese/charset.class.php";
                $gb2312_str = Charset::convert($str, 'utf-8', 'gb2312');
                $str2 = Charset::PinYin($gb2312_str, 'gb2312');
                // echo "^gb2312_str : $gb2312_str ^ ";
                // echo "^str2: $str2 ^ ";
                return $str2;
            } else {
                return $str;
            }
        }
    }
    require_once dirname(__FILE__) . "/lib/ConvertCharset/ConvertCharset.class.php";
    require_once dirname(__FILE__) . "/lib/utf8_to_ascii/utf8_to_ascii.php";
    // if $CONF_use_utf it means the $str is already in utf
    // so  translitarate it directly
    if ($CONF_use_utf) {
        return utf8_to_ascii($str);
    }
    $NewEncoding = new ConvertCharset();
    $str_utf8 = $NewEncoding->Convert($str, $enc, "utf-8", $Entities);
    return utf8_to_ascii($str_utf8);
}