当前位置:编程学习 > php >>

php的汉字转换GBK-Big5


php的汉字转换一直是比较麻烦的事
首先要说两点:
1.GBK的繁体字并不是Big5,但一般繁体字都有对应的Big码
2.一GBK码并不一定有对应的Big5码,所以一般是不可逆转换
该类内置了三个函数
qswhStr 格式化字符串
qswhFile 格式化一文件
qswhDir 格式化目录下所有文件(.qswh的除外,那是原先文档的备份)
qswhBig5.php 从这里下载
http://www.blueidea.com/user/qswh/qswhBig5.zip
class qswhBig5{
var $qswhData;
function qswhBig5($filename="qswhBig5.php"){
$this->qswhData=file($filename);
}
function qswhStr($gb,$fail="??"){
/******(qiushuiwuhen 2002-9-6)******/
$ret="";
for($i=0;$i if(($p=ord(substr($gb,$i,1)))>127){
$q=ord(substr($gb,++$i,1));
$tmp=$this->qswhData[$p-128];
for($j=0;$j=$q)break;
if($k==$q)$q=chr(hexdec(substr($tmp,$j+2,2))).chr(hexdec(substr($tmp,$j+4,2)));
else if($fail=="")$q=chr($p).chr($q); else $q=$fail;
}
else
$q=chr($p);
$ret.=$q;


}
return $ret;
}
function qswhFile($filename,$fail="??"){
/******(qiushuiwuhen 2002-9-6)******/
if(!file_exists($filename.".qswh"))copy($filename,$filename.".qswh");
$fp=fopen($filename,"r+");
$tmp=fread($fp,filesize($filename));
rewind($fp);
fwrite($fp,$this->qswhStr($tmp,$fail));
fclose($fp);
}
function qswhDir($dirname,$fail="??"){
/******(qiushuiwuhen 2002-9-6)******/
$d = dir($dirname);
while($entry=$d->read()) {
if($entry=="."||$entry=="..")continue;
$entry=$dirname."/".$entry;
if(is_dir($entry))
$this->qswhDir($entry,$fail);
else{
if(substr($entry,-5)!=".qswh")$this->qswhFile($entry,$fail);
}
}
$d->close();
return $c;
}
}
使用范例:
$words="秋水无恨";
$qswh=new qswhBig5("qswhBig5.php");//qswhBig5.php,可省参数
echo("请选择编码Big5查看:".$qswh->qswhStr($words));<br>echo(" 编码一目录:".$qswh->qswhDir("test"));<br>echo(" 编码一文件:".$qswh->qswhFile("index.htm"));<br>使用说明:<br>qswhStr中第二个参数代表如果没有对应的Big5将替换的字,如果为空,则保留该字<br>将文件格式化后,记得要修改<meta中的content-type为Big。ps.该文章现仅限在csdn文档中心,如要转载,请和作者联系,否则后果自负。<pre><span>补充:</span>Web开发 , php ,</pre></div><div class="zykmore"><script type="text/javascript" src="/js/s3.js"></script></div><div class="content"><p>上一个:<a href="/show/73eea91710864d1c.htm">php的汉字转换GBK-UnicodeUTF8</a><br/>下一个:<a href="/show/3c4b049753eb8722.htm">php的字符编码转换工具</a></p><div class="piclist">更多图片编程知识:<ul><li><a href="/show/7c87024d80cfdb31.htm"><img src='/upload/20120926/20091113203024-436789954.jpg' width=105 height=105><br/>php的mysql的问题</a></li><li><a href="/show/b5abf95c216cf1a6.htm"><img src='/upload/20120926/20100714000652-243420729.jpg' width=105 height=105><br/>PHP+MYSQL求一段赋值的代码</a></li><li><a href="/show/d91d5c41c19f8277.htm"><img src='/upload/2013111604/20121102043018813.jpg' width=105 height=105><br/>yii时间控件的使用</a></li><li><a href="/show/997ca5a6d000ebf7.htm"><img src='/upload/2013111604/20120809041513664.jpg' width=105 height=105><br/>国外十大最流行PHP框架排名</a></li><li><a href="/show/3c2c6154b51a3957.htm"><img src='/upload/2013111613/20110825031816400.jpg' width=105 height=105><br/>PHP SOAP服务器端C#客户端</a></li><li><a href="/show/74acbe3f33f1be2c.htm"><img src='/upload/2013111613/20110622155635707.jpg' width=105 height=105><br/>php正则表达式应用之提炼歌词</a></li></ul></div></div> <div class="zykmore"><script type="text/javascript" src="/js/s4.js"></script></div><div class="more"><dl><dt>更多<a href="/list/2_1.htm">php</a>疑问解答:</dt><dd><a target="_blank" href="/show/43ebe0f31fc162f7.htm">php使用imagick将image图片转化为字符串模式</a></dd><dd><a target="_blank" href="/show/228688b59ba70796.htm">php通过gd实现图片图片转换为字符图代码</a></dd><dd><a target="_blank" href="/show/43ebe0f31fc162f7.htm">PHP把图片转base64代码,php把base64代码转换为图片并保存</a></dd><dd><a target="_blank" href="/show/b636313fd0bf206e.htm">PHP把图片base64转换成图片并保存成文件</a></dd><dd><a target="_blank" href="/show/a0b923820dcc509a.htm">wordpress问题&lt;?php if(have_posts()) : ?&gt;</a></dd><dd><a target="_blank" href="/show/9d4c2f636f067f89.htm">建设一个搜索类网站php还是jsp,数据库那个好</a></dd><dd><a target="_blank" href="/show/a2f3e71d9181a67b.htm">没理由啊 php代码无法执行,貌似有语法错误。。。</a></dd><dd><a target="_blank" href="/show/bbce2345d7772b06.htm">关于PHP 和API 的一段代码不懂啊不懂,请高手指点! 这是淘宝API的</a></dd><dd><a target="_blank" href="/show/5a880faf6fb5e608.htm">php语言中,序列化到底在那里使用?它的优势是什么?劣势是什么?</a></dd><dd><a target="_blank" href="/show/ceea167a5a36dedd.htm">PHP函数等于或等于应该怎么表达</a></dd><dd><a target="_blank" href="/show/fb98ab9159f51fd0.htm">请教php高手,解决basename函数和mb_substr函数处理中文文件名称的解决方法,在上传文件时,总是出现乱码</a></dd><dd><a target="_blank" href="/show/2e2d7fbdea1afc51.htm">.NET,PHP,JAVA,JS优秀点分别是?</a></dd><dd><a target="_blank" href="/show/02a44259755d38e6.htm">织梦cms 在环境监测的时候 wamp5 gd不支持 是为什么。;extension=php_gd2.dll这一句我删除了还是不显示?</a></dd><dd><a target="_blank" href="/show/d9caa6e02c990b0a.htm">我想学PHP。1.应安装什么编程工具? 2. 装LIUNX系统是装简易的还是?什么版本的?3.还应安装什么?</a></dd><dd><a target="_blank" href="/show/6fe97759aa27a0c9.htm">&lt;?php 和 &lt;? 有什么区别</a></dd></dl></div> </div> <div id="zykleft"> <div class="leftm"> <div id="logo"><a href="http://www.zzzyk.com/">站长资源库</a> <div class="clear"></div><script type="text/javascript" src="/js/i7f.js"></script></div> <script type="text/javascript" src="/js/sharen.js"></script><div class="clear"></div> <dl class="list"><dd><a href="/list/1_1.htm">asp</a></dd><dd><a href="/list/2_1.htm">php</a></dd><dd><a href="/list/3_1.htm">Delphi</a></dd><dd><a href="/list/4_1.htm">Matlab</a></dd><dd><a href="/list/5_1.htm">JSP</a></dd><dd><a href="/list/6_1.htm">Foxpro</a></dd><dd><a href="/list/7_1.htm">JS</a></dd><dd><a href="/list/8_1.htm">C/C++</a></dd><dd><a href="/list/9_1.htm">C#/ASP.NET</a></dd><dd><a href="/list/10_1.htm">VC++</a></dd><dd><a href="/list/11_1.htm">JAVA</a></dd><dd><a href="/list/12_1.htm">VB</a></dd><dd><a href="/list/13_1.htm">汇编语言</a></dd><dd><a href="/list/20_1.htm">html/css</a></dd><dd><a href="/list/21_1.htm">CGI</a></dd><dd><a href="/list/23_1.htm">XML/UML</a></dd><dd><a href="/list/24_1.htm">wap</a></dd><dd><a href="/list/27_1.htm">网站相关</a></dd><dd><a href="/list/60_1.htm">网页素材</a></dd><dd><a href="/list/70_1.htm">python</a></dd><dd><a href="/list/71_1.htm">微信小程序</a></dd><dd><a href="/list/72_1.htm">thinkphp</a></dd></dl><dl class="notice">如果你遇到<a href="/default.htm">编程学习</a>难题:<br/>访问www.zzzyk.com 试试</dl> </div> <div class="leftm"><dl><dt><script type="text/javascript" src="/js/s5.js"></script></dt></dl></div> <div class="leftm"><dl><dt><script type="text/javascript" src="/js/s6.js"></script></dt></dl></div> </div></div> <div class="clear"></div> <div class="bdshare"> <script type="text/javascript" src="/js/share.js"></script> </div> <div class="clear"></div> <div class="foot">CopyRight &copy; 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved<br/>部分文章来自网络,<script type="text/javascript" src="/images/my.js"></script> </div> </body> </html>