看看这篇文章是否对你有帮助
http://www.aspsky.net/article/list.asp?id=2735

解决方案 »

  1.   

    经过测试,可以使用了,调用参考下面给出的例子
    <script language="vbscript">
    Function GetPY(as_InputString,ReturnBig,isall)'-------------------------------------------------------------------------------
    'Last Modified  :01/18/2002'Name           :GetPY'Used to        :返回给定汉字串的首字母串,即声母串'Input Arguments:as_InputString - string , 给定的汉字串'               :ReturnBig - Boolean,可选,如为false则返回小写拼音,否则为大写,'                                         缺省为大写' :isall  -  Boolean,如为flase则返回第一个字的拼音首字符'Return Value   :ls_ReturnString - String , 给定的汉字串的声母串,一律为小写'Notice         :1. 此方法基于汉字的国标汉字库区位编码的有效性,不符合此编码的'                   系统此函数无效!'                2. 若汉字串含有ASCII码将保持不变,但非汉字字符的图形符号等将略去。'                3. 其中若有空格,则略去'Sample         :ls_rtn =GetPY("中华人民共和国",false)'                ls_rtn will be : zhrmghg'------------------------------------------------------------------------------- Dim lc_FirstLetter                  '存放国标一级汉字不同读音的起始区位码对应读音Dim ls_ch                           '临时单元Dim ls_SecondSecTable               '存放所有国标二级汉字读音Dim ls_ReturnStr                    '返回串Dim li_SecPosValue                  '存放国标一级汉字不同读音的起始区位码Dim li_SectorCode                   '汉字区码Dim li_PositionCode                 '汉字位码Dim li_SecPosCode                   '汉字区位码Dim li_offset                       '二级字库偏移量Dim iDim j as_InputString = Replace(as_InputString, " ", "")li_SecPosValue = Array(1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787, 3106, 3212, 3472, 3635, 3722, 3730, 3858, 4027, 4086, 4390, 4558, 4684, 4925, 5249)lc_FirstLetter = Array("A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "W", "X", "Y", "Z")ls_SecondSecTable = "" ls_SecondSecTable = ls_SecondSecTable + "cjwgnspgcenegypbtwxzdxykygtpjnmjqmbsgzscyjsyyfpggbzgydywjkgaljswkbjqhyjwpdzlsgmrybywwccgznkydg"ls_SecondSecTable = ls_SecondSecTable + "ttngjeyekzydcjnmcylqlypyqbqrpzslwbdgkjfyxjwcltbncxjjjjcxdtqsqzycdxxhgckbphffsspybgmxjbbyglbhls"ls_SecondSecTable = ls_SecondSecTable + "smzmpjhsojnghdzcdklgjhsgqzhxqgkezzwymcscjnyetxadzpmdssmzjjqjyzcjjfwqjbdzbjgdnzcbwhgxhqkmwfbpbq"ls_SecondSecTable = ls_SecondSecTable + "dtjjzkqhylcgxfptyjyyzpsjlfchmqshgmmxsxjpkdcmbbqbefsjwhwwgckpylqbgldlcctnmaeddksjngkcsgxlhzaybd"ls_SecondSecTable = ls_SecondSecTable + "btsdkdylhgymylcxpycjndqjwxqxfyyfjlejbzrwccqhqcsbzkymgplbmcrqcflnymyqmsqtrbcjthztqfrxchxmcjcjlx"ls_SecondSecTable = ls_SecondSecTable + "qgjmshzkbswxemdlckfsydsglycjjssjnqbjctyhbftdcyjdgwyghqfrxwckqkxebpdjpxjqsrmebwgjlbjslyysmdxlcl"ls_SecondSecTable = ls_SecondSecTable + "qkxlhtjrjjmbjhxhwywcbhtrxxglhjhfbmgykldyxzpplggpmtcbbajjzyljtyanjgbjflqgdzyqcaxbkclecjsznslyzh"ls_SecondSecTable = ls_SecondSecTable + "lxlzcghbxzhznytdsbcjkdlzayffydlabbgqszkggldndnyskjshdlxxbcghxyggdjmmzngmmccgwzszxsjbznmlzdthcq"ls_SecondSecTable = ls_SecondSecTable + "ydbdllscddnlkjyhjsycjlkohqasdhnhcsgaehdaashtcplcpqybsdmpjlpcjaqlcdhjjasprchngjnlhlyyqyhwzpnccg"ls_SecondSecTable = ls_SecondSecTable + "wwmzffjqqqqxxaclbhkdjxdgmmydjxzllsygxgkjrywzwyclzmcsjzldbndcfcxyhlschycjqppqagmnyxpfrkssbjlyxy"ls_SecondSecTable = ls_SecondSecTable + "jjglnscmhcwwmnzjjlhmhchsyppttxrycsxbyhcsmxjsxnbwgpxxtaybgajcxlypdccwqocwkccsbnhcpdyznbcyytycks"ls_SecondSecTable = ls_SecondSecTable + "kybsqkkytqqxfcwchcwkelcqbsqyjqcclmthsywhmktlkjlychwheqjhtjhppqpqscfymmcmgbmhglgsllysdllljpchmj"ls_SecondSecTable = ls_SecondSecTable + "hwljcyhzjxhdxjlhxrswlwzjcbxmhzqxsdzpmgfcsglsdymjshxpjxomyqknmyblrthbcftpmgyxlchlhlzylxgssssccl"ls_SecondSecTable = ls_SecondSecTable + "sldclepbhshxyyfhbmgdfycnjqwlqhjjcywjztejjdhfblqxtqkwhdchqxagtlxljxmsljhdzkzjecxjcjnmbbjcsfywkb"ls_SecondSecTable = ls_SecondSecTable + "jzghysdcpqyrsljpclpwxsdwejbjcbcnaytmgmbapclyqbclzxcbnmsggfnzjjbzsfqyndxhpcqkzczwalsbccjxpozgwk"ls_SecondSecTable = ls_SecondSecTable + "ybsgxfcfcdkhjbstlqfsgdslqwzkxtmhsbgzhjcrglyjbpmljsxlcjqqhzmjczydjwbmjklddpmjegxyhylxhlqyqhkycw"ls_SecondSecTable = ls_SecondSecTable + "cjmyhxnatjhyccxzpcqlbzwwwtwbqcmlbmynjcccxbbsnzzljpljxyztzlgcldcklyrzzgqtgjhhgjljaxfgfjzslcfdqz"ls_SecondSecTable = ls_SecondSecTable + "lclgjdjcsnclljpjqdcclcjxmyzftsxgcgsbrzxjqqcczhgyjdjqqlzxjyldlbcyamcstylbdjbyregklzdzhldszchznw"ls_SecondSecTable = ls_SecondSecTable + "czcllwjqjjjkdgjcolbbzppglghtgzcygezmycnqcycyhbhgxkamtxyxnbskyzzgjzlqjdfcjxdygjqjjpmgwgjjjpkjsb"ls_SecondSecTable = ls_SecondSecTable + "gbmmcjssclpqpdxcdyykypcjddyygywchjrtgcnyqldkljczzgzccjgdyksgpzmdlcphnjafyzdjcnmwescsglbtzcgmsd"ls_SecondSecTable = ls_SecondSecTable + "llyxqsxsbljsbbsgghfjlwpmzjnlyywdqshzxtyywhmcyhywdbxbtlmswyyfsbjcbdxxlhjhfpsxzqhfzmqcztqcxzxrdk"ls_SecondSecTable = ls_SecondSecTable + "djhnnyzqqfnqdmmgnydxmjgdhcdycbffallztdltfkmxqzdngeqdbdczjdxbzgsqqddjcmbkxffxmkdmcsychzcmljdjyn"ls_SecondSecTable = ls_SecondSecTable + "hprsjmkmpcklgdbqtfzswtfgglyplljzhgjjgypzltcsmcnbtjbhfkdhbyzgkpbbymtdlsxsbnpdkleycjnycdykzddhqg"ls_SecondSecTable = ls_SecondSecTable + "sdzsctarlltkzlgecllkjljjaqnbdggghfjtzqjsecshalqfmmgjnlyjbbtmlycxdcjpldlpcqdhsycbzsckbzmsljflhr"
      

  2.   

    ls_SecondSecTable = ls_SecondSecTable + "bjsnbrgjhxpdgdjybzgdlgcsezgxlblgyxtwmabchecmwyjyzlljjshlgndjlslygkdzpzxjyyzlpcxszfgwyydlyhcljs"ls_SecondSecTable = ls_SecondSecTable + "cmbjhblyjlycblydpdqysxktbytdkdxjypcnrjmfdjgklccjbctbjddbblblcdqrppxjcglzcshltoljnmdddlngkaqakg"ls_SecondSecTable = ls_SecondSecTable + "jgyhheznmshrphqqjchgmfprxcjgdychghlyrzqlcngjnzsqdkqjymszswlcfqjqxgbggxmdjwlmcrnfkkfsyyljbmqamm"ls_SecondSecTable = ls_SecondSecTable + "mycctbshcptxxzzsmphfshmclmldjfyqxsdyjdjjzzhqpdszglssjbckbxyqzjsgpsxjzqznqtbdkwxjkhhgflbcsmdldg"ls_SecondSecTable = ls_SecondSecTable + "dzdblzkycqnncsybzbfglzzxswmsccmqnjqsbdqsjtxxmbldxcclzshzcxrqjgjylxzfjphymzqqydfqjjlcznzjcdgzyg"ls_SecondSecTable = ls_SecondSecTable + "cdxmzysctlkphtxhtlbjxjlxscdqccbbqjfqzfsltjbtkqbsxjjljchczdbzjdczjccprnlqcgpfczlclcxzdmxmphgsgz"ls_SecondSecTable = ls_SecondSecTable + "gszzqjxlwtjpfsyaslcjbtckwcwmytcsjjljcqlwzmalbxyfbpnlschtgjwejjxxglljstgshjqlzfkcgnndszfdeqfhbs"ls_SecondSecTable = ls_SecondSecTable + "aqdgylbxmmygszldydjmjjrgbjgkgdhgkblgkbdmbylxwcxyttybkmrjjzxqjbhlmhmjjzmqasldcyxyqdlqcafywyxqhz" ls_ReturnStr = ""'MsgBox Len(ls_SecondSecTable)
    'Enddim getlengthif isall then
    getlength = Len(as_InputString)
    else 
    getlength = 1
    end ifFor i = 1 To getlength                                                              '依次处理as_InputString中每个字符    ls_ch = Mid(as_InputString, i, 1)
     
        If Asc(ls_ch) < 128 And Asc(ls_ch) > 0 Then                                         '非汉字         ls_ReturnStr = ls_ReturnStr + ls_ch                                            '不变    Else                                                                                '是汉字
             
             li_SectorCode = Int("&H" + Left(Hex(Asc(ls_ch)), 2)) - 160                     '区码         li_PositionCode = Int("&H" + Right(Hex(Asc(ls_ch)), 2)) - 160                  '位码         li_SecPosCode = li_SectorCode * 100 + li_PositionCode                          '区位码
           
             
             If li_SectorCode > 15 And li_SectorCode < 56 Then                          '第一个字符
                           For j = 23 To 1 Step -1                                                   '找声母                If li_SecPosCode >= li_SecPosValue(j - 1) Then                    ls_ReturnStr = ls_ReturnStr + lc_FirstLetter(j - 1)                    Exit For                 End If              Next          Else                                                                          '第一个字符            li_offset = (li_SectorCode - 56) * 94 + li_PositionCode                     '计算偏移量
          
                If li_offset >= 1 And li_offset <= 3008 Then                                '二区汉字                ls_ReturnStr = ls_ReturnStr + Mid(ls_SecondSecTable, li_offset, 1)      '取出此字声母            End If        End If    End IfNext    If ReturnBig Then      GetPY = UCase(ls_ReturnStr)    Else      GetPY = LCase(ls_ReturnStr)    End IfEnd Function
    </script>
    <script language="javascript">
    window.prompt("",GetPY("这是一个测试,abcdefg,比方说如果这个函数是 js 的,我可以用下面的方法做一个实时的显示",false,true));
    window.prompt("",GetPY("这是一个测试,abcdefg,比方说如果这个函数是 js 的,我可以用下面的方法做一个实时的显示",true,false));
    </script>