php 漢字轉化成 二進位 十進位 十六進位 數字

來源:互聯網
上載者:User

<?php<br />/**<br /> * 把一個漢字轉為unicode的通用函數,不依賴任何庫,和別的自訂函數,但有條件<br /> * 條件:本檔案以及函數的輸入參數應該用utf-8編碼,不然要加函數轉換<br /> * 其實亦可輕易編寫反向轉換的函數,甚至不局限於漢字,奇怪為什麼PHP沒有現成函數<br /> * @author xieye<br /> *<br /> * @param {string} $word 必須是一個漢字,或代表漢字的一個數組(用str_split切割過)<br /> * @return {string} 一個十進位unicode碼,如4f60,代表漢字 “你”<br /> *<br /> * @example<br /> echo "你 ".getUnicodeFromOneUTF8("你");<br /> echo "<br />";<br /> echo "好 ".getUnicodeFromOneUTF8("好");<br /> echo "<br />";<br /> echo "你好 ".getUnicodeFromOneUTF8("你好");<br /> echo "<br />";<br /> echo "你好嗎 ".getUnicodeFromOneUTF8("你好嗎");<br /> 你 20320<br /> 好 22909<br /> 你好 251503099357000<br /> 你好嗎 4.21952182258E+21<br /> */<br />function getUnicodeFromOneUTF8($word) {<br /> //擷取其字元的內部數組表示,所以本檔案應用utf-8編碼!<br /> if (is_array( $word))<br /> $arr = $word;<br /> else<br /> $arr = str_split($word);<br /> //此時,$arr應類似array(228, 189, 160)<br /> //定義一個Null 字元串儲存<br /> $bin_str = '';<br /> //轉成數字再轉成二進位字串,最後聯合起來。<br /> foreach ($arr as $value)<br /> $bin_str .= decbin(ord($value));<br /> //此時,$bin_str應類似111001001011110110100000,如果是漢字"你"<br /> //正則截取<br /> $bin_str = preg_replace('/^.{4}(.{4}).{2}(.{6}).{2}(.{6})$/','$1$2$3', $bin_str);</p><p> //此時, $bin_str應類似0100111101100000,如果是漢字"你"<br /> return bindec($bin_str);<br /> //返回類似20320, 漢字"你"<br /> //return dechex(bindec($bin_str));<br /> //如想返回十六進位4f60,用這句<br />}<br />echo "你 ".getUnicodeFromOneUTF8("你");<br />echo "<br />";<br />echo "好 ".getUnicodeFromOneUTF8("好");<br />echo "<br />";<br />echo "你好 ".getUnicodeFromOneUTF8("你好");<br />echo "<br />";<br />echo "你好嗎 ".getUnicodeFromOneUTF8("你好嗎");<br />exit;</p><p>?> 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.