我搜索到以前很多人已经问过这个问题,但是这个破CSDN搜索出来的记录居然无法打开,我已经等了三天了,还是打不开,所以只能再问问大家了。我想得到汉字的拼音,应该怎么做?

解决方案 »

  1.   

    来自CSDN文档中心:希望对你有帮助!
    标题     汉字转化为拼音(php版)    qiushuiwuhen(原作)
    关键字     汉字 拼音 php Array 很多问题都是因为中文问题造成的 
    如文件名最好别用中文 
    现在的解决方法一般是产生一个ID,将这个ID做文件名 
    网页上如果url带汉字也经常出错 
    现在的解决方法一般用urlencode编码 
    现在用了这个转化,就好多了
    原理:利用多维数组 
    1.添加索引
    2.遍历数组<?
     $d=array(
      array("a",-20319),
      array("ai",-20317),
      array("an",-20304),
      array("ang",-20295),
      array("ao",-20292),
      array("ba",-20283),
      array("bai",-20265),
      array("ban",-20257),
      array("bang",-20242),
      array("bao",-20230),
      array("bei",-20051),
      array("ben",-20036),
      array("beng",-20032),
      array("bi",-20026),
      array("bian",-20002),
      array("biao",-19990),
      array("bie",-19986),
      array("bin",-19982),
      array("bing",-19976),
      array("bo",-19805),
      array("bu",-19784),
      array("ca",-19775),
      array("cai",-19774),
      array("can",-19763),
      array("cang",-19756),
      array("cao",-19751),
      array("ce",-19746),
      array("ceng",-19741),
      array("cha",-19739),
      array("chai",-19728),
      array("chan",-19725),
      array("chang",-19715),
      array("chao",-19540),
      array("che",-19531),
      array("chen",-19525),
      array("cheng",-19515),
      array("chi",-19500),
      array("chong",-19484),
      array("chou",-19479),
      array("chu",-19467),
      array("chuai",-19289),
      array("chuan",-19288),
      array("chuang",-19281),
      array("chui",-19275),
      array("chun",-19270),
      array("chuo",-19263),
      array("ci",-19261),
      array("cong",-19249),
      array("cou",-19243),
      array("cu",-19242),
      array("cuan",-19238),
      array("cui",-19235),
      array("cun",-19227),
      array("cuo",-19224),
      array("da",-19218),
      array("dai",-19212),
      array("dan",-19038),
      array("dang",-19023),
      array("dao",-19018),
      array("de",-19006),
      array("deng",-19003),
      array("di",-18996),
      array("dian",-18977),
      array("diao",-18961),
      array("die",-18952),
      array("ding",-18783),
      array("diu",-18774),
      array("dong",-18773),
      array("fa",-18526),
      array("fan",-18518),
      array("fang",-18501),
      array("fei",-18490),
      array("fen",-18478),
      array("feng",-18463),
      array("fo",-18448),
      array("fou",-18447),
      array("fu",-18446),
      array("ga",-18239),
      array("gai",-18237),
      array("gan",-18231),
      array("gang",-18220),
      array("gao",-18211),
      array("ge",-18201),
      array("gei",-18184),
      array("gen",-18183),
      array("geng",-18181),
      array("gong",-18012),
      array("gou",-17997),
      array("gu",-17988),
      array("gua",-17970),
      array("guai",-17964),
      array("guan",-17961),
      array("guang",-17950),
      array("gui",-17947),
      array("gun",-17931),
      array("guo",-17928),
      array("ha",-17922),
      array("hai",-17759),
      array("han",-17752),
      array("hang",-17733),
      array("hao",-17730),
      array("he",-17721),
      array("hei",-17703),
      array("hen",-17701),
      array("heng",-17697),
      array("hong",-17692),
      array("hou",-17683),
      array("hu",-17676),
      array("hua",-17496),
      array("huai",-17487),
      array("huan",-17482),
      array("huang",-17468),
      array("hui",-17454),
      array("hun",-17433),
      array("huo",-17427),
      array("ji",-17417),
      array("jia",-17202),
      array("jian",-17185),
      array("jiang",-16983),
      array("jiao",-16970),
      array("jie",-16942),
      array("jin",-16915),
      array("jing",-16733),
      array("jiong",-16708),
      array("jiu",-16706),
      array("ju",-16689),
      array("juan",-16664),
      array("jue",-16657),
      array("jun",-16647),
      array("ka",-16474),
      array("kai",-16470),
      array("kan",-16465),
      array("kang",-16459),
      array("kao",-16452),
      array("ke",-16448),
      array("ken",-16433),
      array("keng",-16429),
      array("kong",-16427),
      array("kou",-16423),
      array("ku",-16419),
      array("kua",-16412),
      array("kuai",-16407),
      array("kuan",-16403),
      array("kuang",-16401),
      array("kui",-16393),
      array("kun",-16220),
      array("kuo",-16216),
      array("la",-16212),
      array("lai",-16205),
      array("lan",-16202),
      array("lang",-16187),
      array("lao",-16180),
      array("le",-16171),
      array("lei",-16169),
      array("leng",-16158),
      array("li",-16155),
      array("lia",-15959),
      array("lian",-15958),
      array("liang",-15944),
      array("liao",-15933),
      array("lie",-15920),
      array("lin",-15915),
      array("ling",-15903),
      array("liu",-15889),
      array("long",-15878),
      array("lou",-15707),
      array("lu",-15701),
      array("lv",-15681),
      array("luan",-15667),
      array("lue",-15661),
      array("lun",-15659),
      array("luo",-15652),
      array("ma",-15640),
      array("mai",-15631),
      array("man",-15625),
      array("mang",-15454),
      array("mao",-15448),
      array("me",-15436),
      array("mei",-15435),
      array("men",-15419),
      array("meng",-15416),
      array("mi",-15408),
      array("mian",-15394),
      array("miao",-15385),
      array("mie",-15377),
      array("min",-15375),
      array("ming",-15369),
      array("miu",-15363),
      array("mo",-15362),
      array("mou",-15183),
      array("mu",-15180),
      array("na",-15165),
      array("nai",-15158),
      array("nan",-15153),
      array("nang",-15150),
      array("nao",-15149),
      array("ne",-15144),
      array("nei",-15143),
      array("nen",-15141),
      array("neng",-15140),
      array("ni",-15139),
      array("nian",-15128),
      array("niang",-15121),
      array("niao",-15119),
      array("nie",-15117),
      array("nin",-15110),
     );
     function g($num){
      global $d;
      if($num>0&&$num<160){
       return chr($num);
      }
      elseif($num<-20319||$num>-10247){
       return "";
      }else{
       for($i=count($d)-1;$i>=0;$i--){if($d[$i][1]<=$num)break;}
       return $d[$i][0];
      }
     } function c($str){
      $ret="";
      for($i=0;$i<strlen($str);$i++){
       $p=ord(substr($str,$i,1));
       if($p>160){
        $q=ord(substr($str,++$i,1));
        $p=$p*256+$q-65536;
       }
       $ret.=g($p);
      }
      return $ret;
     } 
     echo c($hz);
    ?>
    <form method=post>
    请在此处输入中文:<input name=hz>
    </form> 
      

  2.   

    我段程序我之前已经看到过,但是不知道php本身有什么特点,反正在我把它改造成vc的代码之后运行发现,它说建立的这个表格好像不太对,我输入的大部分汉字好像都无法落到它的拼音有效区间里去,不知道是怎么回事。比如说很多汉字的内码好像小于-30000,可是表里只到-20000多。
      

  3.   

    事实上它建立了一个汉字对照表,你去网上找找看有没有这种汉字对照表,Download一个不就得了Good Luck!
      

  4.   

    我用ATL做过一个查询汉字拼音的组件。但源代码可能找不到了。我找找看,如果我找到就发给你,发信到[email protected]告诉我email.