- 论坛徽章:
- 0
|
function utf2unicode($string)
{
$tempstr = $string;
#$tempstr= trim($tempstr);
$len = strlen($tempstr);
$outstr="";
for ($i=0;$i<$len;$i++)
{
if (ord(substr($tempstr,$i,1)) < 128 )
{
$a = chr(ord(substr($tempstr,$i,1)));
$outstr=$outstr . $a;
}
elseif (ord(substr($tempstr,$i,1)) >;= 192 and ord(substr($tempstr,$i,1)) < 224)
{
$er = $i + 1;
$outsub = bindec(str_pad (decbin(ord(substr($tempstr,$i,1))-192), 11, decbin(ord(substr($tempstr,$er,1))-12 ));
$outsub = dechex($outsub);
$outstr =$outstr."&#x".$outsub.";";
$i++;
}
elseif (ord(substr($tempstr,$i,1)) >;= 224 and ord(substr($tempstr,$i,1)) < 239)
{
$er = $i + 1;
$san = $i + 2;
#$sbs = str_pad (decbin(ord(substr($tempstr,$i,1)) - 224), 10, decbin(ord(substr($tempstr,$er,1)) - 12 );
$outsub = bindec(str_pad (str_pad (decbin(ord(substr($tempstr,$i,1))-224), 10, decbin(ord(substr($tempstr,$er,1))-12 ),16,decbin(ord(substr($tempstr,$san,1))-12 ));
$outsub = dechex($outsub);
$outstr = $outstr."&#x".$outsub.";";
$i= $i + 2;
}
else
{
$er = $i + 1;
$san = $i + 2;
$si = $i + 3;
$diyibu=str_pad (decbin(ord(substr($tempstr,$i,1))-240), 9, decbin(ord(substr($tempstr,$er,1))-12 );
$dierbu = str_pad($diyibu,15,decbin(ord(substr($tempstr,$san,1))-12 );
$disanbu = str_pad ($dierbu,21,decbin(ord(substr($tempstr,$si,1))-12 );
$outstr = bindec($disanbu);
$outsub = dechex($outsub);
$outstr = $outstr."&#x".$outsub.";";
$i= $i + 3;
}
}
return $outstr;
} |
|