PHP实现Unicode编码相互转换的方法示例
本文实例讲述了PHP实现Unicode编码相互转换的方法。分享给大家供大家参考,具体如下:
0){ if(ord(substr($str,$cind,1))<0xA1){//如果为英文则取1个字节 array_push($arr_cont,substr($str,$cind,1)); $cind++; }else{ array_push($arr_cont,substr($str,$cind,2)); $cind+=2; } } } foreach($arr_contas&$row){ $row=iconv("gb2312","UTF-8",$row); } //转换Unicode码 foreach($arr_contas$key=>$value){ $unicodestr.=$prefix.base_convert(bin2hex(iconv('utf-8','UCS-4',$value)),16,10).$postfix; } return$unicodestr; } /** *$strUnicode编码后的字符串 *$decoding原始字符串的编码,默认utf-8 *$prefix编码字符串的前缀,默认"" *$postfix编码字符串的后缀,默认";" */ functionunicode_decode($unistr,$encoding='utf-8',$prefix='',$postfix=';'){ $arruni=explode($prefix,$unistr); $unistr=''; for($i=1,$len=count($arruni);$i<$len;$i++){ if(strlen($postfix)>0){ $arruni[$i]=substr($arruni[$i],0,strlen($arruni[$i])-strlen($postfix)); } $temp=intval($arruni[$i]); $unistr.=($temp<256)?chr(0).chr($temp):chr($temp/256).chr($temp%256); } returniconv('UCS-2',$encoding,$unistr); } $str="PHP编程:www.nhooo.com"; $unistr=unicode_encode($str); $unistr2=unicode_decode($unistr); echo$unistr.'
'; echo$unistr2.'
'; $unistr=unicode_encode($str,'GBK','\\u'); $unistr2=unicode_decode($unistr,'GBK','\\u'); echo$unistr.'
'; echo$unistr2.'
';
PS:下面测试过这个函数比较好用,该代码需要在utf-8编码环境下运行
functionunicode_encode($name){//Unicode编码 $jsonarr=array($name); $jsonstr=json_encode($jsonarr); if(empty($jsonstr)) return''; returnsubstr($jsonstr,2,-2); } functionunicode_decode($name){//Unicode解码 $json='{"str":"'.$name.'"}'; $arr=json_decode($json,true); if(empty($arr)) return''; return$arr['str']; } $test="\u811a\u672c\u4e4b\u5bb6"; echo"unicode解码:".unicode_decode($test)."
"; echo"unicode编码:".unicode_encode('毛票票')."
";
PS:这里再为大家提供几款Unicode编码转换操作相关工具供大家参考使用:
在线