function str2unicode($str){
$len = mb_strlen($str,"GB2312");
for($i = 0;$i<$len;$i++){
$char = mb_substr($str,$i,1,"GB2312");
if(!(strlen($char)>1)){
$dec = ord($char);
if($dec>16){
$ret .= "%".dechex($dec);
}else{
$ret .= "%0".dechex($dec);
}
}else{
$temp = base_convert(bin2hex(iconv("GB2312","UTF-8",$char)),16,2);
$temp = substr($temp,4,4).substr($temp,10,6).substr($temp,18);
$ret .= "%u".strtoupper(base_convert($temp,2,16));
}
}
return $ret;
}
$test = "test测试";
echo str2unicode($test);
输出:
%74%65%73%74%u6D4B%u8BD5