温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP Unicode编码相互转换

发布时间:2020-06-11 19:11:02 阅读:543 作者:lij2960 栏目:web开发
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>
<?php
/**
* $str 原始中文字符串
* $encoding 原始字符串的编码,默认utf-8
* $prefix 编码后的前缀,默认"&#"
* $postfix 编码后的后缀,默认";"
*/
function unicode_encode($str$encoding 'utf-8'$prefix '&#'$postfix ';'{
    //将字符串拆分
    $str iconv("UTF-8""gb2312"$str);
    $cind 0;
    $arr_cont array();

    for ($i 0$i strlen($str); $i++) {
        if (strlen(substr($str$cind1)) > 0) {
            if (ord(substr($str$cind1)) < 0xA1) { //如果为英文则取1个字节 
                array_push($arr_contsubstr($str$cind1));
                $cind++;
            } else {
                array_push($arr_contsubstr($str$cind2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row) {
        $row iconv("gb2312""UTF-8"$row);
    }

    //转换Unicode码
    foreach ($arr_cont as $key => $value) {
        $unicodestr.= $prefix base_convert(bin2hex(iconv('utf-8''UCS-4'$value)), 1610) .$postfix;
    }

    return $unicodestr;
}

/**
* $str Unicode编码后的字符串
* $decoding 原始字符串的编码,默认utf-8
* $prefix 编码字符串的前缀,默认"&#"
* $postfix 编码字符串的后缀,默认";"
*/
function unicode_decode($unistr$encoding 'utf-8'$prefix '&#'$postfix ';'{
    $arruni explode($prefix$unistr);
    $unistr '';
    for ($i 1$len count($arruni); $i $len$i++) {
        if (strlen($postfix) > 0) {
            $arruni[$i] = substr($arruni[$i], 0strlen($arruni[$i]) - strlen($postfix));
        }
        $temp intval($arruni[$i]);
        $unistr .= ($temp 256) ? chr(0) . chr($temp) : chr($temp 256) . chr($temp 256);
    }
    return iconv('UCS-2'$encoding$unistr);
}

$str "PHP二次开发:www.php2.cc";

$unistr unicode_encode($str);
$unistr2 unicode_decode($unistr);
echo $unistr '<br />';
echo $unistr2 '<br />';

$unistr unicode_encode($str,'GBK','\\u');
$unistr2 unicode_decode($unistr,'GBK','\\u');
echo $unistr '<br />';
echo $unistr2 '<br />';

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×