php unicode编码实现

2018-03-28 17:16:48
public static function unicode_encode($str) 
    {
        if(!isset($str) || $str === '') { return $str; }

        $str = iconv('UTF-8', 'UCS-2', $str);
        $len = strlen($str);
        $new = '';
        for ($i = 0; $i < $len - 1; $i = $i + 2) {
            $c = $str[$i];
            $c2 = $str[$i + 1];
            if (ord($c) > 0)
            {  // 两个字节的文字
              $new .= sprintf('\\\u%02s%02s', base_convert(ord($c), 10, 16), base_convert(ord($c2), 10, 16));
            }
            else
            {
              $new .= sprintf('\\\u%04s',base_convert(ord($c2), 10, 16));
            }
        }
        return $new;
    }