ps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-">本文实例讲述了PHP实现Unicode编码相互转换的方法。分享给大家供大家参考,具体如下:
代码如下 | 复制代码 |
/**
* $str 原始中文字符串
* $encoding 原始字符串的编码,默认utf-8
* $prefix 编码后的前缀,默认""
* $postfix 编码后的后缀,默认";"
*/
functionunicode_encode($str,$encoding='utf-8',$prefix='',$postfix=';') {
//将字符串拆分
$str= iconv("UTF-8","gb2312",$str);
$cind= 0;
$arr_cont=array();
for($i= 0;$i if(strlen(substr($str,$cind, 1)) > 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;
}
/**
* $str Unicode编码后的字符串
* $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.jb51.net";
$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.'
'; |
米加小镇世界龙年无广告版 安卓版v1.81
米加小镇世界龙年无广告是一款模拟类手游,不少的玩家可能都玩过
部落冲突互通服 安卓版v17.100.1
部落冲突互通服是全球风靡的战争策略手游,连接安卓和iOS服务
我的世界恶魔模组资源包 (EDU HELL)最新版vDEATH
我的世界恶魔版是一款像素风格的开放世界沙盒游戏,游戏中你可以
艺术大亨天天拍卖变富翁 最新安卓版v1.31.0
艺术大亨天天拍卖变富翁是一款非常好玩的模拟经营类手游,在游戏
大型巴士司机游戏 安卓版v2.1.0
大型巴士司机是一款模拟驾驶类游戏,玩家们将在游戏中化身为大巴