菜鸡源码,专注精品下载!
当前位置:首页 > 建站教程 > 建站知识

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就会少一位,未找到原因。

于是做了如上修改,暂时未发现出错。

相关文章

    无相关信息
评论
建站知识
建站知识
使用技巧
调试安装
运营推广