php对中文Unicode编码 2022年亲测修改版
发布时间:2022-01-01 栏目:建站知识
浏览:
分类:
最近需要抓取一个网页 他的网页参数是汉字编码Unicode的,
和http://tool.chinaz.com/tools/unicode.aspx这个工具转换结果相同,
于是我找这个函数我找了一晚上,坑爹都不能用 最后拿别人的修改的。
分享记录下:
function unicode_encode($name)
{$name = iconv('UTF-8', 'UCS-2', $name);
$len = strlen($name);
$str = '';
for ($i = 0; $i < $len - 1; $i = $i + 2)
{
$c = $name[$i];
$c2 = $name[$i + 1];
if (ord($c) > 0)
{
//$str .= str_pad(base_convert(ord($c2), 10, 16), 2, 0, STR_PAD_LEFT).base_convert(ord($c), 10, 16);
$jial=str_pad(base_convert(ord($c2), 10, 16), 2, 0, STR_PAD_LEFT).base_convert(ord($c), 10, 16);
//判断如果三位数 就在第二个位置后加0
if(strlen($jial)==3){
$jial=insertToStr($jial, 2, "0");
}
$str .="u".$jial;
}
else
{
$str .= $c2;
}
}
return $str;
}
$name = "你好 ";
$name = unicode_encode($name); //unicode编码汉字
echo $name;
测试效果:你好 unicode编码后 是u4f60u597d
原版有个BUG 某些汉字会输出3位数,经查发现都是有规律的 如果第三位是0就会少一位,未找到原因。
于是做了如上修改,暂时未发现出错。