PHP Unicode編碼相互轉換的例子

來源:互聯網
上載者:User
<?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, $cind, 1)) > 0) {            if (ord(substr($str, $cind, 1)) < 0xA1) { //如果為英文則取1個位元組                 array_push($arr_cont, substr($str, $cind, 1));                $cind++;            } else {                array_push($arr_cont, substr($str, $cind, 2));                $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)), 16, 10) .$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], 0, strlen($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 />';

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.