$s = '禾光';
$a = getFromUnicode($s);
var_dump($a);
function getFromUnicode($words){
$letters = explode(';',$words);
$result = '';
foreach($letters as $l){
if(!$l) continue;
$l = hexdec($l);
$l = decbin($l);
$l = '00000000000'.$l;
$str = array();
$str[0] = '1110'.substr($l,-16,4);
$str[1] = '10'.substr($l,-12,6);
$str[2] = '10'.substr($l,-6);
$txt = '';
foreach ($str as $value){
$txt .= chr(bindec($value));
}
$result .= $txt;
}
return $result;
}
function getUnicodeFromOneUTF8($word) {
//獲取其字符的內部數組表示,所以本文件應用utf-8編碼!
if (is_array( $word))
$arr = $word;
else
$arr = str_split($word);
//此時,$arr應類似array(228, 189, 160)
//定義一個空字符串存儲
$bin_str = '';
//轉成數字再轉成二進制字符串,最後聯合起來。
foreach ($arr as $value) {
var_dump(decbin(ord($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應類似111001001011110110100000,如果是漢字"你"
return dechex(bindec($bin_str)); //如想返回十六進制4f60,用這句
}
php unicode轉utf-8
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.