最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
示例:PHP实现Unicode编码相互转换的方法
时间:2022-06-24 22:41:52 编辑:袖梨 来源:一聚教程网
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.'
'; |
相关文章
- 王者荣耀侦探能力大测试攻略 王者荣耀侦探能力大测试怎么过 11-22
- 无期迷途主线前瞻兑换码是什么 11-22
- 原神欧洛伦怎么培养 11-22
- 炉石传说网易云音乐联动怎么玩 11-22
- 永劫无间手游确幸转盘怎么样 11-22
- 无期迷途主线前瞻兑换码是什么 无期迷途主线前瞻直播兑换码介绍 11-22