小編給大家分享一下PHP中unicode與普通字符串相互轉(zhuǎn)化的方法是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)志丹,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18982081108
方法一:json
/** * unicode轉(zhuǎn)字符串,通過(guò)json轉(zhuǎn)化 * @param $str * @return string */ function unicode_decode_by_json($str) { $json = '{"str":"' . $str . '"}'; $arr = json_decode($json, true); if (empty($arr)) return ''; return $arr['str']; }
方法二:
/** * unicode轉(zhuǎn)中文 * @param $data * @return null|string|string[] */ function unicode_decode($data) { $rs = preg_replace_callback('/\\\\u([0-9a-f]{4})/i', 'replace_unicode_escape_sequence', $data); return $rs; } function replace_unicode_escape_sequence($match) { return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE'); }
字符串轉(zhuǎn)unicode
/** * @param string $str 需轉(zhuǎn)換字符,這里為單個(gè)字符 * @return string */ function get_unicode($str) { $bin_str = ''; $arr = is_array($str) ? $str : str_split($str);//獲取字符內(nèi)部數(shù)組表示,此時(shí)$arr應(yīng)類(lèi)似array(228, 189, 160) foreach ($arr as $value) $bin_str .= decbin(ord($value));//轉(zhuǎn)成數(shù)字再轉(zhuǎn)成二進(jìn)制字符串,$bin_str應(yīng)類(lèi)似111001001011110110100000,如果是漢字"你" $bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/', '$1$2$3', $bin_str);//正則截取, $bin_str應(yīng)類(lèi)似0100111101100000,如果是漢字"你" $unicode = dechex(bindec($bin_str));//返回unicode十六進(jìn)制 $_sup = ''; for ($i = 0; $i < 4 - strlen($unicode); $i++) $_sup .= '0';//補(bǔ)位高字節(jié) 0 return '\\u' . $_sup . $unicode; //加上 \u 返回 } /** * 轉(zhuǎn)化字符串為unicode * @param $str string 可單個(gè)/復(fù)數(shù)個(gè) * @return string */ function unicode_encode($str) { $_arr_str = preg_split('/(?測(cè)試效果:
$_str_test = 'see,你看我哪里像好人'; $_unicode = unicode_encode($_str_test); echo $_str_test . ' => ' . $_unicode, '
'; echo $_unicode . ' => ' . unicode_decode($_unicode), '
'; echo $_unicode . ' => ' . unicode_decode_by_json($_unicode), '
';以上是PHP中unicode與普通字符串相互轉(zhuǎn)化的方法是什么的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)頁(yè)題目:PHP中unicode與普通字符串相互轉(zhuǎn)化的方法是什么
標(biāo)題鏈接:http://weahome.cn/article/gecsdh.html