PHP unicode 转 utf8

function unicodeToUTF8($str, $code = 'UTF-8') {
        $str = str_replace('\u', '%u', $str);
        $str = rawurldecode($str);
        preg_match_all("/(?:%u.{4})|.{4};|&#\d+;|.+/U", $str, $r);
        $ar = $r[0];
        foreach ($ar as $k => $v) {
                if (substr($v, 0, 2) == "%u") {
                        $ar[$k] = iconv("UCS-2", $code, pack("H4", substr($v, -4)));
                } elseif (substr($v, 0, 3) == "") {
                        $ar[$k] = iconv("UCS-2", $code, pack("H4", substr($v, 3, -1)));
                } elseif (substr($v, 0, 2) == "&#") {
                        echo substr($v, 2, -1) . " ";
                        $ar[$k] = iconv("UCS-2", $code, pack("n", substr($v, 2, -1)));
                }
        }
        return join("", $ar);
}

你可能感兴趣的:(unicode)