我写过,要的话give me your email
不过是用vb写的,自己拿去改写成js也行,因为js不能得到字符的ASCII码而放弃~~(其实可以调 vbs的asc函数)

解决方案 »

  1.   

    [email protected]
    可以给我一份代码吗?
      

  2.   

    可以讲讲思路吗?ps:  js里是可以得到ASCII码的,event.keycode
      

  3.   

    根据GB-2312编码规则 
    每一个点阵汉字可用一个唯一区位编码与之对应。区位码由四位数字组成,前两位为区码,表示此汉字所属的分区,后两位为位码,表示汉字在该区中的位置。汉字是从 16 区开始。0 - 15 区为特殊字符,从16区到55区为一级汉字,共3755个汉字。从56区到87区为二级汉字,共3008个汉字。
    一个汉字的前一半是 ASCⅡ码为“160+区码”的字符,后一半是ASCⅡ码为“160+ 位码”的字符。
    如果是一级汉字(16-55区),那么对应的拼音首拼很规则,分别是"A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "W", "X", "Y", "Z"
    二级汉字比较不常见,所以拼音首拼在同一个区里是混乱的,就需要一张码表
    (56-87区,包含3008个首拼)
    那么现在就简单了,找到一个中文字符的ASCII码,根据上面的规则就可以得到区码和位码,如果16<区码<55,那么直接返回首拼,不是则根据位码算出在码表里偏移量,也可以返回首拼
      

  4.   

    to starsjz(石头)
      我要得到的是中文字符的ASCII码,而用chatCodeAt等函数确只能返回UNICODE,所以只好在VB里做~~~
      

  5.   

    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"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"
      

  6.   

    搞什么的。中文那里有什么ASCII码。
    找到对应的数据才是关键。
    拼音还好,有一个顺序的范围。
    如果是广东话,就惨了。只能一对一了。
      

  7.   

    to platinum (白金) 
      你的电子邮件有误,发不了。有没有别的电子邮件?
      

  8.   

    to lostinet(Lostinet)
     广东话怎么了?难道广东人用的不是汉字?当然广东人讲普通话勉为其难
    对这个取首拼可能没有什么用^_^
    什么叫只能一对一?56区到87区是需要一对一的,如果你有更好的方案不妨拿出来研究研究.
      

  9.   

    faint,我说我怎么无法给分呢,原来是用错 id 了