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