方法一:@H_301_1@
代码如下:
301_1@PHP@H_301_1@function unicode_encode($name)@H_301_1@{@H_301_1@ $name = iconv('UTF-8','UCS-2',$name);@H_301_1@ $len = strlen($name);@H_301_1@ $str = '';@H_301_1@ for ($i = 0; $i < $len - 1; $i = $i + 2)@H_301_1@ {@H_301_1@ $c = $name[$i];@H_301_1@ $c2 = $name[$i + 1];@H_301_1@ if (ord($c) > 0)@H_301_1@ { //两个字节的文字@H_301_1@ $str .= '\u'.base_convert(ord($c),10,16).str_pad(base_convert(ord($c2),16),2,STR_PAD_LEFT);@H_301_1@ }@H_301_1@ else@H_301_1@ {@H_301_1@ $str .= $c2;@H_301_1@ }@H_301_1@ }@H_301_1@ return $str;@H_301_1@}@H_301_1@//将UNICODE编码后的内容进行解码@H_301_1@function unicode_decode($name)@H_301_1@{@H_301_1@ //转换编码,将Unicode编码转换成可以浏览的utf-8编码@H_301_1@ $pattern = '/([\w]+)|(\\\u([\w]{4}))/i';@H_301_1@ preg_match_all($pattern,$name,$matches);@H_301_1@ if (!empty($matches))@H_301_1@ {@H_301_1@ $name = '';@H_301_1@ for ($j = 0; $j < count($matches[0]); $j++)@H_301_1@ {@H_301_1@ $str = $matches[0][$j];@H_301_1@ if (strpos($str,'\\u') === 0)@H_301_1@ {@H_301_1@ $code = base_convert(substr($str,2),16,10);@H_301_1@ $code2 = base_convert(substr($str,4),10);@H_301_1@ $c = chr($code).chr($code2);@H_301_1@ $c = iconv('UCS-2','UTF-8',$c);@H_301_1@ $name .= $c;@H_301_1@ }@H_301_1@ else@H_301_1@ {@H_301_1@ $name .= $str;@H_301_1@ }@H_301_1@ }@H_301_1@ }@H_301_1@ return $name;@H_301_1@}@H_301_1@
@H_301_1@方法二:@H_301_1@
代码如下:
301_1@ function unicode2utf8($str){@H_301_1@ if(!$str) return $str;@H_301_1@ $decode = json_decode($str);@H_301_1@ if($decode) return $decode;@H_301_1@ $str = '["' . $str . '"]';@H_301_1@ $decode = json_decode($str);@H_301_1@ if(count($decode) == 1){@H_301_1@ return $decode[0];@H_301_1@ }@H_301_1@ return $str;@H_301_1@ }@H_301_1@