正文

整理出来的得到汉字拼音的代码2005-05-10 13:53:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/Csharpsky/922.html

分享到:

 using System; using System.Text; namespace HXBTools.Util   {    /// <summary>   ///   /// </summary>   public class py    {    public py()     {     //     // TODO: 在此处添加构造函数逻辑     //    }    public static char GetPyChar(char c)     {     return GetPyChar("" + (char)c);    }    public static char GetPyChar(string strName)     {     short code;     if (strName == "" )      return ' ';     code = GetGB2312Code(strName);           // 英文字符区     if( code >= 32 && code <= 126 ) return char.ToUpper(strName[0]);     // 全角字符区     if(strName[0] >= 'A' && strName[0] <= 'Z')      return (char)(strName[0] - 'A' + 'A');     if(strName[0] >= 'a' && strName[0] <= 'z')      return (char)(strName[0] - 'a' + 'A');     if(strName[0] >= '0' && strName[0] <= '9')      return (char)(strName[0] - '0' + '0');     //拼音顺序区.         int tmp = 65536 + code;           if( (tmp >= 45217 && tmp <= 45252) ) return  'A';     if( (tmp >= 45253 && tmp <= 45760) ) return  'B';     if( (tmp >= 45761 && tmp <= 46317) ) return  'C';     if( (tmp >= 46318 && tmp <= 46825) ) return  'D';     if( (tmp >= 46826 && tmp <= 47009) ) return  'E';     if( (tmp >= 47010 && tmp <= 47296) ) return  'F';     if( (tmp >= 47297 && tmp <= 47613) ) return  'G';     if( (tmp >= 47614 && tmp <= 48118) ) return  'H';     if( (tmp >= 48119 && tmp <= 49061) ) return  'J';     if( (tmp >= 49062 && tmp <= 49323) ) return  'K';     if( (tmp >= 49324 && tmp <= 49895) ) return  'L';     if( (tmp >= 49896 && tmp <= 50370) ) return  'L';     if( (tmp >= 50371 && tmp <= 50613) ) return  'N';     if( (tmp >= 50614 && tmp <= 50621) ) return  'O';     if( (tmp >= 50622 && tmp <= 50905) ) return  'P';     if( (tmp >= 50906 && tmp <= 51386) ) return  'Q';     if( (tmp >= 51387 && tmp <= 51445) ) return  'R';     if( (tmp >= 51446 && tmp <= 52217) ) return  'S';     if( (tmp >= 52218 && tmp <= 52697) ) return  'T';     if( (tmp >= 52698 && tmp <= 52979) ) return  'W';     if( (tmp >= 52980 && tmp <= 53640) ) return  'X';     if( (tmp >= 53689 && tmp <= 54480) ) return  'Y';     if( (tmp >= 54481 && tmp <= 55289) ) return  'Z';     // 转换GB2312内码到区位以检查难检字     int iQh = ((code >> 8) & 0x00ff) - 160;     int iQl = (code & 0x000000ff) - 160;     if (iQl < 0)      {      return ' '; // 那些不在gb2312字符集里的字们目前还没有办法。     }     int iQ = iQh * 100 + iQl;     if (iQ >=5601 && iQ <= 8794) // 区位的难检字区      {      int pos = ( iQh - 56 ) * 94 + iQl - 1;      if (pos < 0 || pos >= sCodeData.Length)       {       return ' ';      }      return sCodeData[pos - 1];     }     return ' ';    }     /// <summary>    /// 难检字码表.    /// </summary>    private static string sCodeData =     "CJWGNSPGCENEGYPBTWXZDXYKYGTPJNMJQMBSGZSCYJSYYFPGGBZGYDYWJKGALJSWKBJQHYJWPDZLSGMR"     + "YBYWWCCGZNKYDGTTNGJEYEKZYDCJNMCYLQLYPYQBQRPZSLWBDGKJFYXJWCLTBNCXJJJJCXDTQSQZYCDXXHGCKBPHFFSS"     + "PYBGMXJBBYGLBHLSSMZMPJHSOJNGHDZCDKLGJHSGQZHXQGKEZZWYMCSCJNYETXADZPMDSSMZJJQJYZCJJFWQJBDZBJGD"     + "NZCBWHGXHQKMWFBPBQDTJJZKQHYLCGXFPTYJYYZPSJLFCHMQSHGMMXSXJPKDCMBBQBEFSJWHWWGCKPYLQBGLDLCCTNMA"     + "EDDKSJNGKCSGXLHZAYBDBTSDKDYLHGYMYLCXPYCJNDQJWXQXFYYFJLEJBZRWCCQHQCSBZKYMGPLBMCRQCFLNYMYQMSQT"     + "RBCJTHZTQFRXCHXMCJCJLXQGJMSHZKBSWXEMDLCKFSYDSGLYCJJSSJNQBJCTYHBFTDCYJDGWYGHQFRXWCKQKXEBPDJPX"     + "JQSRMEBWGJLBJSLYYSMDXLCLQKXLHTJRJJMBJHXHWYWCBHTRXXGLHJHFBMGYKLDYXZPPLGGPMTCBBAJJZYLJTYANJGBJ"     + "FLQGDZYQCAXBKCLECJSZNSLYZHLXLZCGHBXZHZNYTDSBCJKDLZAYFFYDLABBGQSZKGGLDNDNYSKJSHDLXXBCGHXYGGDJ"     + "MMZNGMMCCGWZSZXSJBZNMLZDTHCQYDBDLLSCDDNLKJYHJSYCJLKOHQASDHNHCSGAEHDAASHTCPLCPQYBSDMPJLPCJAQL"     + "CDHJJASPRCHNGJNLHLYYQYHWZPNCCGWWMZFFJQQQQXXACLBHKDJXDGMMYDJXZLLSYGXGKJRYWZWYCLZMCSJZLDBNDCFC"     + "XYHLSCHYCJQPPQAGMNYXPFRKSSBJLYXYJJGLNSCMHCWWMNZJJLHMHCHSYPPTTXRYCSXBYHCSMXJSXNBWGPXXTAYBGAJC"     + "XLYPDCCWQOCWKCCSBNHCPDYZNBCYYTYCKSKYBSQKKYTQQXFCWCHCWKELCQBSQYJQCCLMTHSYWHMKTLKJLYCHWHEQJHTJ"     + "HPPQPQSCFYMMCMGBMHGLGSLLYSDLLLJPCHMJHWLJCYHZJXHDXJLHXRSWLWZJCBXMHZQXSDZPMGFCSGLSDYMJSHXPJXOM"     + "YQKNMYBLRTHBCFTPMGYXLCHLHLZYLXGSSSSCCLSLDCLEPBHSHXYYFHBMGDFYCNJQWLQHJJCYWJZTEJJDHFBLQXTQKWHD"     + "CHQXAGTLXLJXMSLJHDZKZJECXJCJNMBBJCSFYWKBJZGHYSDCPQYRSLJPCLPWXSDWEJBJCBCNAYTMGMBAPCLYQBCLZXCB"     + "NMSGGFNZJJBZSFQYNDXHPCQKZCZWALSBCCJXPOZGWKYBSGXFCFCDKHJBSTLQFSGDSLQWZKXTMHSBGZHJCRGLYJBPMLJS"     + "XLCJQQHZMJCZYDJWBMJKLDDPMJEGXYHYLXHLQYQHKYCWCJMYHXNATJHYCCXZPCQLBZWWWTWBQCMLBMYNJCCCXBBSNZZL"     + "JPLJXYZTZLGCLDCKLYRZZGQTGJHHGJLJAXFGFJZSLCFDQZLCLGJDJCSNCLLJPJQDCCLCJXMYZFTSXGCGSBRZXJQQCCZH"     + "GYJDJQQLZXJYLDLBCYAMCSTYLBDJBYREGKLZDZHLDSZCHZNWCZCLLWJQJJJKDGJCOLBBZPPGLGHTGZCYGEZMYCNQCYCY"     + "HBHGXKAMTXYXNBSKYZZGJZLQJDFCJXDYGJQJJPMGWGJJJPKJSBGBMMCJSSCLPQPDXCDYYKYPCJDDYYGYWCHJRTGCNYQL"     + "DKLJCZZGZCCJGDYKSGPZMDLCPHNJAFYZDJCNMWESCSGLBTZCGMSDLLYXQSXSBLJSBBSGGHFJLWPMZJNLYYWDQSHZXTYY"     + "WHMCYHYWDBXBTLMSWYYFSBJCBDXXLHJHFPSXZQHFZMQCZTQCXZXRDKDJHNNYZQQFNQDMMGNYDXMJGDHCDYCBFFALLZTD"     + "LTFKMXQZDNGEQDBDCZJDXBZGSQQDDJCMBKXFFXMKDMCSYCHZCMLJDJYNHPRSJMKMPCKLGDBQTFZSWTFGGLYPLLJZHGJJ"     + "GYPZLTCSMCNBTJBHFKDHBYZGKPBBYMTDLSXSBNPDKLEYCJNYCDYKZDDHQGSDZSCTARLLTKZLGECLLKJLJJAQNBDGGGHF"     + "JTZQJSECSHALQFMMGJNLYJBBTMLYCXDCJPLDLPCQDHSYCBZSCKBZMSLJFLHRBJSNBRGJHXPDGDJYBZGDLGCSEZGXLBLG"     + "YXTWMABCHECMWYJYZLLJJSHLGNDJLSLYGKDZPZXJYYZLPCXSZFGWYYDLYHCLJSCMBJHBLYJLYCBLYDPDQYSXKTBYTDKD"     + "XJYPCNRJMFDJGKLCCJBCTBJDDBBLBLCDQRPPXJCGLZCSHLTOLJNMDDDLNGKAQAKGJGYHHEZNMSHRPHQQJCHGMFPRXCJG"     + "DYCHGHLYRZQLCNGJNZSQDKQJYMSZSWLCFQJQXGBGGXMDJWLMCRNFKKFSYYLJBMQAMMMYCCTBSHCPTXXZZSMPHFSHMCLM"     + "LDJFYQXSDYJDJJZZHQPDSZGLSSJBCKBXYQZJSGPSXJZQZNQTBDKWXJKHHGFLBCSMDLDGDZDBLZKYCQNNCSYBZBFGLZZX"     + "SWMSCCMQNJQSBDQSJTXXMBLDXCCLZSHZCXRQJGJYLXZFJPHYMZQQYDFQJJLCZNZJCDGZYGCDXMZYSCTLKPHTXHTLBJXJ"     + "LXSCDQCCBBQJFQZFSLTJBTKQBSXJJLJCHCZDBZJDCZJCCPRNLQCGPFCZLCLCXZDMXMPHGSGZGSZZQJXLWTJPFSYASLCJ"     + "BTCKWCWMYTCSJJLJCQLWZMALBXYFBPNLSCHTGJWEJJXXGLLJSTGSHJQLZFKCGNNDSZFDEQFHBSAQDGYLBXMMYGSZLDYD"     + "JMJJRGBJGKGDHGKBLGKBDMBYLXWCXYTTYBKMRJJZXQJBHLMHMJJZMQASLDCYXYQDLQCAFYWYXQHZ";    public static short GetGB2312Code(string s)     {     if (s == null || s.Length == 0)      return 32;     char c = s[0];     if (c >= ' ' && c <= '~')      {      return (short)c;     }     byte [] arBytes = Encoding.GetEncoding(936).GetBytes(s);     if (arBytes.Length < 2)      {      return (short)arBytes[0];     }     return (short)(arBytes[0] << 8 | arBytes[1]);    }    public static short GetGB2312Code(char c)     {     return GetGB2312Code("" + (char)c);    }   } }

阅读(34035) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册