qswhData=file($filename); } function gb2u($gb,$callback=""){ /******(">
输入banner图图片脚本导航/分类

php汉字转码GBK->Unicode(UTF8)编码转换

  1. //php汉字转码 GBK->Unicode(UTF8)
  2. class qswhGBK{
  3. var $qswhData;
  4. function qswhGBK($filename="qswhGBK.php"){
  5. $this->qswhData=file($filename);
  6. }
  7. function gb2u($gb,$callback=""){
  8. /******(qiushuiwuhen 2002-8-15)******/
  9. $ret="";
  10. for($i=0;$i if(($p=ord(substr($gb,$i,1)))>127){
  11. $q=ord(substr($gb,++$i,1));
  12. $q=($q-($q>128?65:64))*4;
  13. $q=substr($this->qswhData[$p-128],$q,4);
  14. }
  15. else
  16. $q=dechex($p);
  17. if(empty($callback))
  18. $ret.=$q;
  19. else {
  20. $arr=array("htmlHex","htmlDec","escape","u2utf8");
  21. if(is_integer($callback)){
  22. if($callback>count($arr))die("Invalid Function");
  23. $ret.=$this->$arr[$callback-1]($q);
  24. }else
  25. $ret.=$callback($q);
  26. }
  27. }
  28. return $ret;
  29. }
  30. function htmlHex($str){
  31. return "&#x".$str.";";
  32. } // 程序员之家 bbs.it-home.org
  33. function htmlDec($str){
  34. return "&#".hexdec($str).";";
  35. }
  36. function escape($str){
  37. return hexdec($str)<256?chr(hexdec($str)):"%u".$str;
  38. }
  39. function u2utf8($str){
  40. /******(qiushuiwuhen 2002-8-15)******/
  41. $sp="!'()*-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~";
  42. $dec=hexdec($str);
  43. $bin=decbin($dec);
  44. $len=strlen($bin);
  45. $arr=array("c0","e0","f0");
  46. if($dec>0x7f){
  47. $ret="";
  48. for($i=$len,$j=-1;$i>=0;$i-=6,$j++){
  49. if($i>6)
  50. $ret="%".dechex(0x80+bindec(substr($bin,$i-6,6))).$ret;
  51. else
  52. $ret="%".dechex(hexdec($arr[$j])+bindec(substr($bin,0,6-$i))).$ret;
  53. }
  54. }else{
  55. if(strpos($sp,chr($dec)))
  56. $ret=chr($dec);
  57. else
  58. $ret="%".strtolower($str);
  59. }
  60. return $ret;
  61. }
  62. }

调用例子:

  1. $words="中文Abc";

  2. function ex($str){return "[".$str."]";}

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

  4. echo("

    不带参数:".$qswh->gb2u($words));<li>echo("/n调用内置函数htmlHex:".$qswh->gb2u($words,1));<li>echo("/n调用内置函数htmlDec:".$qswh->gb2u($words,2));<li>echo("/n调用内置函数escape:".$qswh->gb2u($words,3));<li>echo("/n调用内置函数u2utf8:".$qswh->gb2u($words,4));<li>echo("/n调用自定义函数:".$qswh->gb2u($words,ex));</p><li></ol><em onclick="copycode($('code_sd4'));"></em><p>效果: </p> 不带参数:4E2D6587416263 调用内置函数htmlHex:&#x4E2D;&#x6587;&#x41;&#x62;&#x63; 调用内置函数htmlDec:&#20013;&#25991;&#65;&#98;&#99; 调用内置函数escape:%u4E2D%u6587Abc 调用内置函数u2utf8:%e4%b8%ad%e6%96%87Abc 调用自定义函数:[4E2D][6587][41][62][63]</td></tr></table> </div> </div> <script type="text/javascript" src="/layui/layui.js"></script> <script> layui.use('code', function(){ layui.code({ elem: 'pre', //默认值为.layui-code about:false, title:'php汉字转码GBK-&gt;Unicode(UTF8)编码转换代码块', encode: true //是否转义html标签。默认不开启 }); }); </script> <footer class="comm-footer"> <ul class="channels"> <li> <a target="_top" href="/system/">操作系统</a> </li><li> <a target="_top" href="/down/">程序下载</a> </li><li> <a target="_top" href="/jquery/">jquery插件库</a> </li><li> <a target="_top" href="/jiaoben/">编程</a> </li><li> <a target="_top" href="/db/">数据库</a> </li><li> <a target="_top" href="/tools/">在线工具</a> </li><li> <a target="_top" href="/framebook/">框架书籍</a> </li><li> <a target="_top" href="/xitongjiaocheng/">系统教程</a> </li><li> <a target="_top" href="/ruanjianxiazai/">软件下载</a> </li> </ul> <ul class="versions"> <li> <a href="https://m.gxlcms.com" class="active">触屏版</a> </li> <li> <a href="https://www.gxlcms.com" target="_top">电脑版</a> </li> </ul> <p><a href="https://beian.miit.gov.cn/" target="_blank" style="color:#ffffff"></a><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?6c9b8cea1903c9f813f150c04aeebc3c"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></p> </footer> </body> </html>