加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

浅析PHP中的UNICODE 编码与解码

发布时间:2020-12-13 06:28:37 所属栏目:PHP教程 来源:网络整理
导读:方法一: 代码如下: function unicode_encode($name) { $name = iconv('UTF-8','UCS-2',$name); $len = strlen($name); $str = ''; for ($i = 0; $i { $c = $name[$i]; $c2 = $name[$i + 1]; if (ord($c) > 0) { //两个字节的文字 $str .= 'u'.base_convert(

方法一:

代码如下:
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 .= 'u'.base_convert(ord($c),10,16).str_pad(base_convert(ord($c2),16),2,STR_PAD_LEFT);
}
else
{
$str .= $c2;
}
}
return $str;
}
//将UNICODE编码后的内容进行解码
function unicode_decode($name)
{
//转换编码,将Unicode编码转换成可以浏览的utf-8编码
$pattern = '/([w]+)|(u([w]{4}))/i';
preg_match_all($pattern,$name,$matches);
if (!empty($matches))
{
$name = '';
for ($j = 0; $j < count($matches[0]); $j++)
{
$str = $matches[0][$j];
if (strpos($str,'u') === 0)
{
$code = base_convert(substr($str,2),16,10);
$code2 = base_convert(substr($str,4),10);
$c = chr($code).chr($code2);
$c = iconv('UCS-2','UTF-8',$c);
$name .= $c;
}
else
{
$name .= $str;
}
}
}
return $name;
}

方法二:

代码如下:
  function unicode2utf8($str){
    if(!$str) return $str;
    $decode = json_decode($str);
    if($decode) return $decode;
    $str = '["' . $str . '"]';
    $decode = json_decode($str);
    if(count($decode) == 1){
      return $decode[0];
    }
      return $str;
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读