欢迎您来到懒之才-站长的分享平台!   学会偷懒,并懒出境界是提高工作效率最有效的方法!
首页 > 经验分享 > PHP > PHP实现gb2312到utf8的编码转换

PHP实现gb2312到utf8的编码转换

2018-06-20 674 收藏 0 赞一个 0 真差劲 0 去评论

在开发PHP应用的时候,编码转换也是常有的事,在PHP中,实现GB2312编码到UTF8(unicode)编码的转换,并不是件复杂的事,下面收集两个PHP函数,轻松实现UTF8与GB2312编码的互相转换。我们先来看unicode到uft8的转换函数:

<?php
// utf8 -> unicode
function utf8_unicode($c) {
switch(strlen($c)) {
case 1:
return ord($c);
case 2:
$n = (ord($c[0]) & 0x3f) << 6;
$n += ord($c[1]) & 0x3f;
return $n;
case 3:
$n = (ord($c[0]) & 0x1f) << 12;
$n += (ord($c[1]) & 0x3f) << 6;
$n += ord($c[2]) & 0x3f;
return $n;
case 4:
$n = (ord($c[0]) & 0x0f) << 18;
$n += (ord($c[1]) & 0x3f) << 12;
$n += (ord($c[2]) & 0x3f) << 6;
$n += ord($c[3]) & 0x3f;
return $n;
}
}
?>

使用方法,只需调用函数即可:

<?php
$str = "大漠孤烟直"; 
echo utf8_unicode($str);
?>

utf8到gb2312的转换:

<?php
function unescape($str) { 
$str = rawurldecode($str); 
preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U",$str,$r); 
$ar = $r[0]; 
print_r($ar); 
foreach($ar as $k=>$v) { 
if(substr($v,0,2) == "%u") 
$ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4))); 
elseif(substr($v,0,3) == "&#x") 
$ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,3,-1))); 
elseif(substr($v,0,2) == "&#") { 
echo substr($v,2,-1)."<br>"; 
$ar[$k] = iconv("UCS-2","GB2312",pack("n",substr($v,2,-1))); 
} 
} 
return join("",$ar); 
} 
?>

使用方法,只需调用函数即可:

<?php
$str = "大漠孤烟直"; 
echo unescape($str);
?>


一、推荐使用迅雷或快车等多线程下载软件下载本站资源。

二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。

三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!

四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.

五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。

六、如需转载本站资源,请注明转载来自并附带链接

七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com

大家评论