Home  >  Article  >  Backend Development  >  PHP Chinese character transcoding GBK to Big5 encoding conversion

PHP Chinese character transcoding GBK to Big5 encoding conversion

WBOY
WBOYOriginal
2016-07-25 08:53:421867browse
  1. //php汉字转码
  2. class qswhBig5{
  3. var $qswhData;
  4. function qswhBig5($filename="qswhBig5.php"){
  5. $this->qswhData=file($filename);
  6. }
  7. function qswhStr($gb,$fail="??"){
  8. /******(qiushuiwuhen 2002-9-6)******/
  9. $ret="";
  10. for($i=0;$i if(($p=ord(substr($gb,$i,1)))>127){
  11. $q=ord(substr($gb,++$i,1));
  12. $tmp=$this->qswhData[$p-128];
  13. for($j=0;$j=$q)break;
  14. if($k==$q)$q=chr(hexdec(substr($tmp,$j+2,2))).chr(hexdec(substr($tmp,$j+4,2)));
  15. else if($fail=="")$q=chr($p).chr($q); else $q=$fail;
  16. }
  17. else
  18. $q=chr($p);
  19. $ret.=$q;
  20. }
  21. return $ret;
  22. }
  23. function qswhFile($filename,$fail="??"){
  24. /******(qiushuiwuhen 2002-9-6)******/
  25. if(!file_exists($filename.".qswh"))copy($filename,$filename.".qswh");
  26. $fp=fopen($filename,"r+");
  27. $tmp=fread($fp,filesize($filename));
  28. rewind($fp);
  29. fwrite($fp,$this->qswhStr($tmp,$fail));
  30. fclose($fp);
  31. }
  32. function qswhDir($dirname,$fail="??"){
  33. /******(qiushuiwuhen 2002-9-6)******/
  34. $d = dir($dirname);
  35. while($entry=$d->read()) {
  36. if($entry=="."||$entry=="..")continue;
  37. $entry=$dirname."/".$entry;
  38. if(is_dir($entry))
  39. $this->qswhDir($entry,$fail);
  40. else{
  41. if(substr($entry,-5)!=".qswh")$this->qswhFile($entry,$fail);
  42. }
  43. }
  44. $d->close();
  45. return $c;
  46. }
  47. }
复制代码

使用范例:

  1. $words="秋水无恨";

  2. $qswh=new qswhBig5("qswhBig5.php"); //qswhBig5.php,可省参数

  3. echo("

    请选择编码Big5查看:".$qswh->qswhStr($words));</li> <li>echo("/n编码一目录:".$qswh->qswhDir("test"));</li> <li>echo("/n编码一文件:".$qswh->qswhFile("index.htm"));</p></li> <li> </ol></div> <em onclick="copycode($('code_L1e'));">复制代码</em> </div> <p>使用说明: qswhStr中第二个参数代表如果没有对应的Big5将替换的字,如果为空,则保留该字。 将文件格式化后,记得要修改<meta></p> </td></tr></table> <div id="comment_46681" class="cm"> </div> <div id="post_rate_div_46681"></div> <br><br></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>Statement:</span><div>The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn</div></div></div><div class="nphpSytBox"><span>Previous article:<a class="dBlack" title="php mb_convert_encoding text encoding conversion function" href="http://m.php.cn/faq/315439.html">php mb_convert_encoding text encoding conversion function</a></span><span>Next article:<a class="dBlack" title="php mb_convert_encoding text encoding conversion function" href="http://m.php.cn/faq/315441.html">php mb_convert_encoding text encoding conversion function</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>Related articles</h2><em><a href="http://m.php.cn/article.html" class="bBlack"><i>See more</i><b></b></a></em><div class="clear"></div></div><ul class="nphpXgwzList"><li><b></b><a href="http://m.php.cn/faq/1.html" title="How to use cURL to implement Get and Post requests in PHP" class="aBlack">How to use cURL to implement Get and Post requests in PHP</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/faq/1.html" title="How to use cURL to implement Get and Post requests in PHP" class="aBlack">How to use cURL to implement Get and Post requests in PHP</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/faq/1.html" title="How to use cURL to implement Get and Post requests in PHP" class="aBlack">How to use cURL to implement Get and Post requests in PHP</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/faq/1.html" title="How to use cURL to implement Get and Post requests in PHP" class="aBlack">How to use cURL to implement Get and Post requests in PHP</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/faq/2.html" title="All expression symbols in regular expressions (summary)" class="aBlack">All expression symbols in regular expressions (summary)</a><div class="clear"></div></li></ul></div></div><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>Public welfare online PHP training,Help PHP learners grow quickly!</p></div><div class="footermid"><a href="http://m.php.cn/about/us.html">About us</a><a href="http://m.php.cn/about/disclaimer.html">Disclaimer</a><a href="http://m.php.cn/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>