PHP头条
热点:

php的汉字转换:GBK至Unicode(UTF8)


php的汉字转换一直是比较麻烦的事

该类内置了四个函数"htmlHex","htmlDec","escape","u2utf8"
方便用户的使用,同时也可自定义函数进行自己喜欢的操作

qswhGBK.php 从这里下载
http://www.blueidea.com/user/qswh/qswhGBK.zip

class qswhGBK{
var $qswhData;
function qswhGBK($filename="qswhGBK.php"){
$this->qswhData=file($filename);
}
function gb2u($gb,$callback=""){
/******(qiushuiwuhen 2002-8-15)******/
$ret="";
for($i=0;$iif(($p=ord(substr($gb,$i,1)))>127){

$q=ord(substr($gb,++$i,1));
$q=($q-($q>128?65:64))*4;
$q=substr($this->qswhData[$p-128],$q,4);
}
else
$q=dechex($p);
if(empty($callback))
$ret.=$q;
else {
$arr=array("htmlHex","htmlDec","escape","u2utf8");
if(is_integer($callback)){
if($callback>count($arr))die("Invalid Function");
$ret.=$this->$arr[$callback-1]($q);
}else
$ret.=$callback($q);
}
}
return $ret;
}

function htmlHex($str){
return "&#x".$str.";";
}

function htmlDec($str){
return "&#".hexdec($str).";";
}

function escape($str){
return hexdec($str)<256?chr(hexdec($str)):"%u".$str;
}

function u2utf8($str){
/******(qiushuiwuhen 2002-8-15)******/
$sp="!'()*-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~";
$dec=hexdec($str);
$bin=decbin($dec);
$len=strlen($bin);
$arr=array("c0","e0","f0");
if($dec>0x7f){
$ret="";
for($i=$len,$j=-1;$i>=0;$i-=6,$j++){
if($i>6)
$ret="%".dechex(0x80+bindec(substr($bin,$i-6,6))).$ret;
else
$ret="%".dechex(hexdec($arr[$j])+bindec(substr($bin,0,6-$i))).$ret;
}
}else{
if(strpos($sp,chr($dec)))
$ret=chr($dec);
else
$ret="%".strtolower($str);
}
return $ret;
}
}


使用范例

$words="中文Abc";
function ex($str){return "[".$str."]";}


$qswh=new qswhGBK("qswhGBK.php");//如果文件名是qswhGBK.php,可省参数

echo("

不带参数:".$qswh->gb2u($words)); <br />echo("\n调用内置函数htmlHex:".$qswh->gb2u($words,1)); <br />echo("\n调用内置函数htmlDec:".$qswh->gb2u($words,2)); <br />echo("\n调用内置函数escape:".$qswh->gb2u($words,3)); <br />echo("\n调用内置函数u2utf8:".$qswh->gb2u($words,4)); <br />echo("\n调用自定义函数:".$qswh->gb2u($words,ex)); <br /></p> <p><br />效果如下: <br /><br />不带参数:4E2D6587416263 <br />调用内置函数htmlHex:&#x4E2D;&#x6587;&#x41;&#x62;&#x63; <br />调用内置函数htmlDec:&#20013;&#25991;&#65;&#98;&#99; <br />调用内置函数escape:%u4E2D%u6587Abc <br />调用内置函数u2utf8:%e4%b8%ad%e6%96%87Abc <br />调用自定义函数:[4E2D][6587][41][62][63]</p> <p align="left"><div style="display:none;"><span id="url" itemprop="url">/phpyy/9783.html</span><span id="indexUrl" itemprop="indexUrl">www.phpzy.com</span><span id="isOriginal" itemprop="isOriginal">true</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">/phpyy/9783.html</span><span id="genre" itemprop="genre">TechArticle</span><span id="description" itemprop="description">php的汉字转换:GBK至Unicode(UTF8) php的汉字转换一直是比较麻烦的事 该类内置了四个函数"htmlHex","htmlDec","escape","u2utf8" 方便用户的使用,同时也可自定义函数进行自己喜欢的操作 qswhGBK.p...</span></div></p></div> <div class="art_confoot"><script src='http://www.phpzy.com/ad/art_confoot.js' type="text/javascript"></script></div> <div class="page"></div> <div class="post-related"> <h3 class="tit_3">相关文章</h3><div class="clearfix m_5"> <ul> <li><a href='/phpyy/9782.html' title='[PHP]进程篇' target='_blank'>[PHP]进程篇</a></li><li><a href='/phpyy/9781.html' title='变量的变量,PHP和你' target='_blank'>变量的变量,PHP和你</a></li><li><a href='/phpyy/9780.html' title='PHP高级技巧全放送(上)' target='_blank'>PHP高级技巧全放送(上)</a></li><li><a href='/phpyy/9779.html' title='用php聊QQ' target='_blank'>用php聊QQ</a></li><li><a href='/phpyy/9778.html' title='用封装类来合理的设计PHP项目--谈PHP项目中类的封' target='_blank'>用封装类来合理的设计PHP项目--谈PHP项目</a></li><li><a href='/phpyy/9777.html' title='php代码优化及php相关问题总结' target='_blank'>php代码优化及php相关问题总结</a></li></ul></div> </div> <div class="option-btns"> <div class="art_confoot"><script src='http://www.phpzy.com/ad/xgart_confoot.js' type="text/javascript"></script></div> </div> <div id="related_reading" class="haman-box"> <ul class="xgyd clearfix"> <div class="xgyd_new"><span class="fast-nav-bar"><a href="http://www.phpzy.com/fenlei/list-11-1.html">今日最新</a></span><strong>相关阅读:</strong></div> <li><a href="/phpyy/9782.html">[PHP]进程篇</a></li> <li><a href="/phpyy/9781.html">变量的变量,PHP和你</a></li> <li><a href="/phpyy/9780.html">PHP高级技巧全放送(上)</a></li> <li><a href="/phpyy/9779.html">用php聊QQ</a></li> <li><a href="/phpyy/9778.html">用封装类来合理的设计PHP项目--谈PHP项目中类</a></li> <li><a href="/phpyy/9777.html">php代码优化及php相关问题总结</a></li> </ul></div> <footer><div class="hot_c"><span><b>相关频道:</b> </span></div> </footer> </div> <div class="info_more" id="info_more"></div> <div class="clearfix mt10 art_commentstop" id="commentTopAd"><script src='http://www.phpzy.com/ad/art_commentstop.js' type="text/javascript"></script></div> <div id="hm_t_46468"></div> <a name="comment"></a><div class="comment" id="commentTopAd" itemprop="comment"><h3>PHP之友评论</h3></div> <div class="wb_comment_box" id="commentsiframe"><script type="text/javascript" src='http://www.phpzy.com/ad/comments.js'></script></div> </article> <div class="syzp mt10" style="overflow:hidden;"><div class="tit_7">今天推荐</div><script type="text/javascript" src="http://www.phpzy.com/ad/left_foot_ad.js"></script></div> </div> <aside class="right" id="main_right"> <div class="art_rightad1"><script src='http://www.phpzy.com/ad/art_rightad1.js' type="text/javascript"></script></div> <div class="r_bd mt10 pb10"> <div class="tit_5 tit_6">php应用最近更新</div> <ul id="bbsRank_1" class="rank_ul2 rank_dot" style="border-top:1px solid #AAC5F2;margin-top: -1px;"> <li><a href="/phpyy/9783.html">php的汉字转换:GBK至Unicode(UTF8)</a> </li> <li><a href="/phpyy/9782.html">[PHP]进程篇</a> </li> <li><a href="/phpyy/9781.html">变量的变量,PHP和你</a> </li> <li><a href="/phpyy/9780.html">PHP高级技巧全放送(上)</a> </li> <li><a href="/phpyy/9779.html">用php聊QQ</a> </li> </ul></div> <div class="art_rightad2 mt10"><script src='http://www.phpzy.com/ad/art_rightad2.js' type="text/javascript"></script></div> <div class="r_bd mt10 pb10"> <div class="tit_5 tit_6">热门推荐</div> <ul id="bbsRank_1" class="rank_ul2 rank_dot" style="border-top:1px solid #AAC5F2;margin-top: -1px;"> <li><a href="/phpyy/669.html">PHP中CURL的几个经典应用实例_javascript技巧</a> </li> <li><a href="/phpyy/8293.html">CentOS6部署phpmyadmin;部署Discuz;部署phpwin</a> </li> <li><a href="/phpyy/4309.html">php-laravel5.1help里的方法如何调用</a> </li> <li><a href="/phpyy/7377.html">php入门mysql分页dbClass类_MySQL</a> </li> <li><a href="/phpyy/5873.html">PHP实现包含中文汉字字符串翻转-PHP源码</a> </li> </ul> </div> <div class="r_bd mt10 pb10"><div style="margin-top: 0pt;" class="tit_5 tit_6">有意思</div> <script type="text/javascript" src="http://www.phpzy.com/ad/right_ad5.js"></script></div> <div class="art_rightad3"><script src='http://www.phpzy.com/ad/art_rightad3.js' type="text/javascript"></script></div> <div id="focus_look" class="instant-focus mt10"><div class="instant-focus-header clearfix"><h3>实时看点</h3><span>看啥好</span></div> <script type="text/javascript" src="http://www.phpzy.com/ad/right_ad6.js"></script></div> <div class="art_rightad4 mt10"><script src='http://www.phpzy.com/ad/art_rightad4.js' type="text/javascript"></script></div> </aside></div></div> <footer id="footer" class="div_body"> <script type="text/javascript" src="http://www.phpzy.com/ad/arc_foot_ad.js"></script> <script type="text/javascript" src="http://www.phpzy.com/templets/js/foot.js"></script> <div style="display:none;"><script src='http://www.phpzy.com/ad/tongji.js' type="text/javascript"></script></div> <div id="roll"></i><a title="回顶部" id="roll_top" href="#top" style="opacity: 0.7;" target="_self" rel="nofllow"></a></div> </footer> <script type="text/javascript" src="http://www.phpzy.com/ad/maintop.js?131231"></script> </body> </html>