$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
最新推荐文章于 2022-12-23 19:26:03 发布