UTF8编码内的繁简转换的PHP类


Posted in PHP onJuly 09, 2009

曾找过一个JS版的,但是到了UTF8编码里不能用,于是就产生了自已写一个的念头。其实我这个代码的实现原理很简单的,只是一个替换字符集的过程,相信大部份人都可以写得出来。以下是代码,不知道有没有bug,大家如果在使用上有问题,可以提出来

<?php 
//<meta charset=utf-8"> 
class utf8_chinese 
{ 
private $utf8_gb2312; 
private $utf8_big5; 
public function __construct(){ 
$this->utf8_gb2312 = "万与丑专业丛东丝丢两严丧个丬丰临为丽举么义乌乐乔习乡书买乱争于亏云亘亚产亩亲亵??亿仅从仑仓仪们价众优伙会伛伞伟传伤伥伦伧伪伫体余佣佥侠侣侥侦侧侨侩侪侬俣俦俨俩俪俭债倾偬偻偾偿傥傧储傩儿兑兖党兰关兴兹养兽冁内冈册写军农冢冯冲决况冻净凄凉凌减凑凛几凤凫凭凯击凼凿刍划刘则刚创删别?i刭刽刿剀剂剐剑剥剧劝办务劢动励劲劳势勋勐?衷蓉胸亚?交??ヂ袈?蔽晕廊蹿岢???餮寡嶝遣尴嶝上贸?秦讼夭??λ?⒈湫鸬?逗盘具从鹾笙怕缆疬亩痔?粑膺歼脚贿窟略边们何赜竭橇?踢羞暹韵踢呦煅七者剡龠芑┻噙膺嬗催?y唠?|唢唣唤唿啧啬啭啮???ヅ玎多粪亢青刃赅又鲟噜柘?胪旁按盐о鸸?荚彩ホ鄢≯嗷悼榧崽驰薨游敕刈孤③廑淅菘眼疔训孥????垲垴埘埙埚埝埯堑堕?G墙壮声壳壶?状Ρ父垂煌房浼卸徂欺挤芙卑伦备韭桢??f┙?︽??挎?殒存?O婴婵婶媪嫒嫔嫱嬷孙学孪宁宝实宠审宪宫宽宾寝对寻导寿将尔尘尧尴尸尽层?撂虢焓袈佩鹩焖昶襻?卺??暗毫朐泪纯?N峄峡?i峤峥峦崂崃??崭嵘?箩吾嗅蔗酃?媳宜?︵?柿敝拇?“镟???葆ジ刹⒐阕?炻?锌庥γ砼臃?鲡蘅?炱?琶皱蛲涞?抗榈甭?ρ宄咕夺庥?溻阌氢榛程?蒜溻驸赈肓?茼♀?悼叶疋????浙⒃庙ㄐ?ッ蹙?宀页捅广?训?唔?撤咩丛干?\憷懑懒懔戆戋戏戗战戬户扎扑扦执扩扪扫扬扰抚抛抟抠抡抢护报担拟拢拣拥拦拧拨择挂挚挛?ノ翁⑿?拥厕卣跫坊??趟鸺窕坏肪菽砺稗庵赖Р艮柁昀哭觳蟾槁Ы列?戕蟀谝”魈??拍爝⑦_ニ釉艿辛彩??刀氛抖衔蘧墒笨?D昙昼?o显晋晒晓晔晕晖暂暧札术朴机杀杂权条来杨杩杰极构枞枢枣枥枧枨枪枫枭柜柠柽栀栅标栈栉栊栋栌栎栏树栖样栾桊桠桡桢档桤桥桦桧桨桩梦????检棂椁椟椠椤椭楼榄榇榈榉??槛槟槠横樯樱橥橱橹橼檐檩欢欤欧歼殁殇残殒殓殚殡殴毁毂毕毙毡毵氇气氢氩氲汇汉污汤汹沓沟没沣沤沥沦沧?h沩沪?m泞泪泶泷泸泺泻泼泽泾洁洒洼浃浅浆浇浈?缸遣怃?娩?夯脘芭ㄤ?煌坑刻卫凿盗颁段?榛恋尤蠼д巧?碓ㄤ俗珍陆ヤ庞驿缮?掠瓮迨?=︿?句涔鲋弯黉苈?蘼死穆斜跆??礓脘熹蛭?变罄戒?翦懊鸬屏樵植屿韭?漓快恋懔冻闼咐锰?蜓谭成侦腔馓探?然漓遂忪鸯戊职??龟笄N?筷褡瘁钺镉瘫丰螵A狞独狭狮狯狰狱狲猃猎猕猡猪猫猬献獭玑??玛玮环现?玺珉珏珐珑?珲?琏琐琼瑶瑷璇璎瓒瓮瓯电画畅畲畴疖疗疟疠疡疬疮疯疱疴痈痉痒痖痨痪痫痴瘅?瘗瘘瘪瘫瘾瘿癞癣癫癯皑皱皲盏盐监盖盗盘眍眦?着睁睐睑瞒瞩矫矶矾矿砀码砖砗砚砜砺砻砾础?硅硕硖硗??确硷碍碛碜碱碹磙礼?祢祯祷祸禀禄禅离秃秆种积称秽?稆税稣稳穑穷窃窍窑窜窝窥窦窭竖竞笃笋笔笕笺笼笾筑筚筛?筝筹签简?箦箧箨箩箪箫篑篓篮篱簖籁籴类籼粜粝粤粪粮糁糇紧絷纟纠纡红纣纤纥约级纨纩纪纫纬纭?纯纰纱纲纳?纵纶纷纸纹纺??纽纾线绀绁绂练组绅细织终绉绊绋绌绍绎经绐绑绒结绔绕?绗绘给绚绛络绝绞统绠绡绢绣?绥绦继绨绩绪绫?续绮绯绰绱绲绳维绵绶绷绸?绺绻综绽绾绿缀缁缂缃缄缅缆缇缈缉?缋缌缍缎缏?缑缒缓缔缕编缗缘缙缚缛缜缝?缟缠缡缢缣缤缥缦缧缨缩缪缫缬缭缮缯缰缱缲缳缴缵罂网罗罚罢罴羁羟羡翘??耢耧耸耻聂聋职聍联聩聪肃肠肤肷肾肿胀胁胆胜胧胨胪胫胶脉脍脏脐脑脓脔脚脱脶脸腊腌?腭腻腼腽腾膑?舆舣舰舱舻艰艳艹艺节芈芗芜芦苁苇苈苋苌苍苎苏苘苹茎茏茑茔茕茧荆荐?荚荛荜荞荟荠荡荣荤荥荦荧荨荩荪荫荬荭荮药莅莜莱莲莳莴莶获莸莹莺莼?萝萤营萦萧萨葱蒇蒉蒋蒌蓝蓟蓠蓣蓥蓦蔷蔹蔺蔼蕲蕴薮藁藓虏虑虚虫虬虮虽虾虿蚀蚁蚂蚕蚝蚬蛊蛎蛏蛮蛰蛱蛲蛳蛴蜕蜗蜡蝇蝈蝉蝎蝼蝾?螨?衅衔补衬衮袄袅?袜袭?装裆?裢裣裤裥褛褴襁?见观?规觅视觇览觉觊觋觌?觎觏觐觑觞触觯?誉誊讠计订讣认讥讦讧讨让讪讫训议讯记?讲讳讴讵讶讷许讹论?讼讽设访诀证诂诃评诅识?诈诉诊诋诌词诎诏?译诒诓诔试诖诗诘诙诚诛诜话诞诟诠诡询诣诤该详诧诨诩?诫诬语诮误诰诱诲诳说诵诶请诸诹诺读诼诽课诿谀谁谂调谄谅谆谇谈谊谋谌谍谎谏谐谑谒谓谔谕谖谗谘谙谚谛谜谝?谟谠谡谢谣谤谥谦谧谨谩谪谫谬谭谮谯谰谱谲谳谴谵谶谷?贝贞负?贡财责贤败账货质贩贪贫贬购贮贯贰贱贲贳贴贵贶贷贸费贺贻贼贽贾贿赀赁赂赃资赅赆赇赈赉赊赋赌赍赎赏赐??赓赔赕赖?赘赙赚赛赜赝赞?赠赡赢赣?赵赶趋趱趸跃跄跖跞践?跷跸跹跻踊踌踪踬踯蹑蹒蹰蹿躏躜躯车轧轨轩?轫转轭轮软轰轱轲轳轴轵轶轷轸轹轺轻轼载轾轿?辁辂较辄辅辆辇辈辉辊辋?辍辎辏辐辑?输辔辕辖辗辘辙辚辞辩辫边辽达迁过迈运还这进远违连迟迩迳迹适选逊递逦逻遗遥邓邝邬邮邹邺邻郁郄郏郐郑郓郦郧郸酝?酱酽酾酿释里?鉴銮錾钆钇针钉钊钋钌钍钎钏钐?钒钓钔钕?钗?钙钚钛钝钞钟钠钡钢钣钤钥钦钧钨钩钪钫钬钭钮钯钰钱钲钳钴钵钶钷钸钹钺钻钼钽钾钿铀铁铂铃铄铅铆铈铉铊铋铍铎?铐铑铒铕铗铘铙?铛铜铝铞铟铠铡铢铣铤铥?铧铨铪铫铬铭铮铯铰铱铲铳铴铵银铷铸铹铺?铼铽链铿销锁锂锃锄锅锆锇锈锉锊锋锌锍锎锏锐锑锒锓锔锕锖锗错锚?锞锟?锡锢锣锤锥锦锨锩锫锬锭键锯锰锱锲?锴锵锶锷锸锹锺锻锼?锾锿镀镁镂?镆镇?镉镊镌镍镎镏镐镑镒?镖镗镙?镛镜镝镞镟?镡镢镣镤镥镦镧镨镩镪镫镬镭?镯镰镱镲镳?镶长门闩闪闫?闭问闯闰闱闲闳间闵闶闷闸闹闺闻闼闽闾?阀阁阂阃阄阅阆?阈阉阊阋阌阍阎阏阐阑阒?阔阕阖阗?阙阚?队阳阴阵阶际陆陇陈陉陕陧陨险随隐隶隽难雏雠雳雾霁霉霭靓静靥鞑鞒鞯鞴韦韧?韩韪韫韬韵页顶顷顸项顺须顼顽顾顿颀颁颂颃预颅领颇颈颉颊?颌颍?颏颐频?颓颔?颖颗题?颚颛颜额颞颟颠颡颢?颤颥颦颧风??飑飒飓?飕??飘飙飚飞飨餍?饥?饧饨饩饪饫饬饭饮饯饰饱饲?饴饵饶饷??饺?饼饽?饿馀馁??馄馅馆馇馈?馊馋?馍?馏馐馑馒馓馔馕马驭驮驯驰驱?驳驴驵驶驷驸驹驺驻驼驽驾驿骀骁骂?骄骅骆骇骈?骊骋验??骏骐骑骒骓??骖骗骘?骚骛骜骝骞骟骠骡骢骣骤骥?骧髅髋髌鬓魇魉鱼??鱿?鲁鲂?鲅鲆鲇鲈??鲋?鲍鲎?鲐鲑鲒?鲔鲕????鲚鲛鲜?鲞鲟鲠鲡鲢鲣鲤鲥鲦鲧鲨鲩?鲫?鲭鲮?鲰鲱鲲鲳鲴鲵鲶鲷鲸?鲺鲻鲼鲽?????鳃鳄鳅鳆鳇??鳊鳋鳌鳍鳎鳏鳐??鳓鳔鳕鳖鳗鳘鳙?鳜鳝鳞鳟??鳢?鸟鸠鸡鸢鸣?鸥鸦?鸨鸩鸪鸫鸬鸭?鸯?鸱鸲鸳?鸵鸶鸷鸸鸹鸺??鸽鸾鸿?鹁鹂鹃鹄鹅鹆鹇鹈鹉鹊鹋鹌?鹎鹏?鹑???鹕?鹗鹘鹚鹛鹜?鹞????鹣鹤?鹦鹧鹨鹩鹪鹫鹬鹭?鹰鹱?鹳?鹾麦麸黄黉?黩黪黾鼋?鼍鼗鼹齄齐齑齿龀??龃龄龅龆龇龈龉龊龋龌龙龚龛龟志制咨只里系范松没尝尝闹面准钟别闲干尽脏拼"; 
$this->utf8_big5 = "?????I??|??G?????爿???辂???????塘????I?y??於????????????|?H???}?x???r???夥???????t?????畜w???L?b?H?e???S?~???z?R????z?????A??E?f??????????键h???????????????V???Q?r??Q?D??R?p???C?坐P??{?P??腓??????t?????h?e?}?q????????????褶k????????烀???Q?T?^???f?钨u?????s???S?d?????????????B?N??P??㈧a??????B???U?\?後?????w??????`??I??h?T?J??柙??U????z吒?j?呱???}?^????W????????O??Z???r?竞?K??数m??c?[???D??肃???u???E?讨o?F?@?????D?A???鲒??K?????]??????????s??|????N??P?_??|???q??????崖????谔??溲}?蝾^??A?Z?Y?J?^??W?y?D????????????I???D??z????????????O?W?\?????????????m?????????????m???票M????????Z?q?????s?S??u?X?[???h?G?F?{?A????n????M??V???饧?p??????????ず?????????缫L??K?V??c?]?T???R??U?F?[?????????????????w???????贫R????n???B?Z???Y????z???????Q??????????a?????K??v??M???T??C???|????怵??????????艏???L??U???P?_????????????M?n???r?Q???????????????D?]???p??Q?v??????S????????v?R????y?z?d?[?u?P???t??f?X?]?x?\?????谍S?挑Y???o??r??????铒@?x??????????????C?㈦s??l???q??O????????g??????n?????f?d??????????????????E?n?????u???????z???????E??????x??????M?{?????春??_?g?e?W???{??????????????л????????????h?@??斑e??]???a?r?S??t?????I??{?o?T?a???????⒏D??\?{??????y???g?I???G????T????Z?i??u??o?????q???Y?O?n?^?u??O?c?B?剡[????R?s?U??L?????M?]?V?E??I???E?u?t???H???z???|?l???綮`??N??t????忘c????q???N?T??????Z?C?a???F?c??糊溜???????????瞰E???????????????????????????????????????????????????迟墚??????????屙????????????????????????????????著????????????????????矽???????????A镟?L?????????????????????????????????????????????????????????????????????????糸??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????u??????????????????V??????????????????????????????????????????????????????L??O???????????s????墒n???????????????????????I?????????????????????槁???]????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????≠~??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????钜???????????????????????????????????J???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????}?忸W???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????谘???S??????L???淑????乾???拚"; 
} 
public function gb2312_big5($str) { 
$str_t = ''; 
$len = strlen($str); 
$a = 0; 
while ($a < $len){ 
if (ord($str{$a})>=224 && ord($str{$a})<=239){ 
if (($temp = strpos( $this->utf8_gb2312, $str{$a} . $str{$a+1} . $str{$a+2})) !== false){ 
$str_t .= $this->utf8_big5{$temp} . $this->utf8_big5{$temp+1} . $this->utf8_big5{$temp+2}; 
$a += 3; 
continue; 
} 
} 
$str_t .= $str{$a}; 
$a += 1; 
} 
return $str_t; 
} 
public function big5_gb2312($str) { 
$str_t = ''; 
$len = strlen($str); 
$a = 0; 
while ($a < $len){ 
if (ord($str{$a})>=224 && ord($str{$a})<=239){ 
if (($temp = strpos( $this->utf8_big5, $str{$a} . $str{$a+1} . $str{$a+2})) !== false){ 
$str_t .= $this->utf8_gb2312{$temp} . $this->utf8_gb2312{$temp+1} . $this->utf8_gb2312{$temp+2}; 
$a += 3; 
continue; 
} 
} 
$str_t .= $str{$a}; 
$a += 1; 
} 
return $str_t; 
} 
} 
//本文档运行于UTF8编码 PHP100.com 
header("Content-Type: text/html; charset=utf-8"); 
$chinese = new utf8_chinese; 
//UTF8内简转繁 
$str = "中华人民共和国万岁"; 
$str_big5 = $chinese->gb2312_big5($str); 
echo "原文:$str <br />"; 
echo "转换为繁体后: $str_big5 <br />"; 
//UTF8内繁转简 
$str = "中?人民共和??f?q "; 
$str_gb2312 = $chinese->big5_gb2312($str); 
echo "原文: $str <br /> "; 
echo "转换为简体后:$str_gb2312 <br /> " ; 
?>
PHP 相关文章推荐
PHP安全防范技巧分享
Nov 03 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
Jan 11 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
php实现的SESSION类
Dec 02 PHP
php读取文件内容的方法汇总
Jan 24 PHP
php访问数组最后一个元素的函数end()用法
Mar 18 PHP
php生成圆角图片的方法
Apr 07 PHP
PHP中array_keys和array_unique函数源码的分析
Feb 26 PHP
php截取视频指定帧为图片
May 16 PHP
PHP+Ajax异步带进度条上传文件实例
Nov 01 PHP
PHP receiveMail实现收邮件功能
Apr 25 PHP
关于ThinkPHP中的异常处理详解
May 11 PHP
PHP 程序授权验证开发思路
Jul 09 #PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 #PHP
程序员编程十条戒律
Jul 09 #PHP
php 执行系统命令的方法
Jul 07 #PHP
PHP 页面跳转到另一个页面的多种方法方法总结
Jul 07 #PHP
php 多个submit提交表单 处理方法
Jul 07 #PHP
PHP 上传文件大小限制
Jul 05 #PHP
You might like
php 字符转义 注意事项
2009/05/27 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
跟我学习javascript的定时器
2015/11/19 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
jQuery多级联动下拉插件chained用法示例
2016/08/20 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
2016/09/14 Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
2017/06/01 jQuery
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
Jquery高级应用Deferred对象原理及使用实例
2020/05/28 jQuery
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
2020/07/27 Javascript
详解ES6 扩展运算符的使用与注意事项
2020/11/12 Javascript
Python爬取三国演义的实现方法
2016/09/12 Python
Python+Wordpress制作小说站
2017/04/14 Python
在Python中使用Neo4j的方法
2019/03/14 Python
Python递归及尾递归优化操作实例分析
2020/02/01 Python
Python定时任务APScheduler原理及实例解析
2020/05/30 Python
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
工程技术员岗位职责
2014/03/02 职场文书
日化店促销方案
2014/03/26 职场文书
个人授权委托书
2014/09/15 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
自查自纠工作总结
2014/10/15 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
Go语言并发编程 sync.Once
2021/10/16 Golang
基于Python实现西西成语接龙小助手
2022/08/05 Golang