大家帮忙啊.......................................

解决方案 »

  1.   

    #region 类CGetPY() 获得字符串的拼音简写, CGetPY().GetPY(param_string),返回string型
        /// <summary>
    ///  获得字符串的拼音简写, CGetPY().GetPY(param_string),返回string型
        /// </summary>
    public class CGetPY
    {
    private ArrayList MyPYColl = new ArrayList();
    private string str_FullCorner; //全角字符
    private string str_HalfCorner; //半角字符 public CGetPY()
    {
    InitMe();
    str_FullCorner ="{}《》[]。,、;:‘’“”()!@#¥^&*<>?+=-_|、1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //全角字符;
    str_HalfCorner = "                                 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //半角字符 } #region 获得字符串的拼音简写
    public string GetPY(string input_string, bool isUpper)
    {
    string _Temp=null;
    for(int i=0;i<input_string.Length;i++)
    _Temp = _Temp + GetOneIndex( input_string.Substring(i,1) );
    _Temp.Trim();
    _Temp.Replace(" ","");
    return isUpper ? _Temp.ToUpper(): _Temp ;
    }
    #endregion #region 获得字符串的拼音简写
    public string GetPY(string input_string)
    {
    string _Temp=null;
    for(int i=0;i<input_string.Length;i++)
    _Temp = _Temp + GetOneIndex( input_string.Substring(i,1) );
    return _Temp ;
    }
    #endregion #region 读取资源文件到ArrayList型变量MyPYColl中
    private void InitMe()
    {
    StreamReader fr = new StreamReader( CAppPath.GetAppPath() + @"\resxfiles\py.list", System.Text.UnicodeEncoding.Default);
    string str;
    try 
    {
    while ( (str=fr.ReadLine()) != null)
    {
    MyPYColl.Add(str.Trim());
    }
    fr.Close();

    catch (Exception ex) 
    {
    MessageBox.Show(ex.Message);
    }
    }
    #endregion #region 得到单个字符的首字母
    private string GetOneIndex(string OneIndexTxt)
    {
    if ( this.str_FullCorner.IndexOf(OneIndexTxt) > 0 )
    return this.str_HalfCorner.Substring(this.str_FullCorner.IndexOf(OneIndexTxt),1); for (int j=0; j< MyPYColl.Count; j++ )
    {
    if ( this.MyPYColl[j].ToString().IndexOf(OneIndexTxt) >= 0 )
    {
    return MyPYColl[j].ToString().Substring(1,1);
    }
    } if(Convert.ToChar(OneIndexTxt)>=0 && Convert.ToChar(OneIndexTxt)<256)
    return OneIndexTxt;
    else
    {
    try
    {
    Encoding gb2312 = Encoding.GetEncoding("gb2312");
    byte[] unicodeBytes = Encoding.Unicode.GetBytes(OneIndexTxt);
    byte[] gb2312Bytes = Encoding.Convert(Encoding.Unicode, gb2312, unicodeBytes);
    return GetX(Convert.ToInt32(
    string.Format("{0:D2}",Convert.ToInt16(gb2312Bytes[0])-160)
    + string.Format("{0:D2}",Convert.ToInt16(gb2312Bytes[1])-160)
    ));
    }
    catch(System.Exception  ex)
    {
    MessageBox.Show(OneIndexTxt +" 可能是生僻字,请将该字及拼音加入到py.list中!",ex.Message);
    return "?";
    }
    }
    }
    #endregion #region 根据区位码得到拼音(单个字符或汉字)
    private string GetX(int GBCode)

    if(GBCode >= 1601 && GBCode < 1637)return "A";
    if(GBCode >= 1637 && GBCode < 1833)return "B";
    if(GBCode >= 1833 && GBCode < 2078)return "C";
    if(GBCode >= 2078 && GBCode < 2274)return "D";
    if(GBCode >= 2274 && GBCode < 2302)return "E";
    if(GBCode >= 2302 && GBCode < 2433)return "F";
    if(GBCode >= 2433 && GBCode < 2594)return "G";
    if(GBCode >= 2594 && GBCode < 2787)return "H";
    if(GBCode >= 2787 && GBCode < 3106)return "J";
    if(GBCode >= 3106 && GBCode < 3212)return "K";
    if(GBCode >= 3212 && GBCode < 3472)return "L";
    if(GBCode >= 3472 && GBCode < 3635)return "M";
    if(GBCode >= 3635 && GBCode < 3722)return "N";
    if(GBCode >= 3722 && GBCode < 3730)return "O";
    if(GBCode >= 3730 && GBCode < 3858)return "P";
    if(GBCode >= 3858 && GBCode < 4027)return "Q";
    if(GBCode >= 4027 && GBCode < 4086)return "R";
    if(GBCode >= 4086 && GBCode < 4390)return "S";
    if(GBCode >= 4390 && GBCode < 4558)return "T";
    if(GBCode >= 4558 && GBCode < 4684)return "W";
    if(GBCode >= 4684 && GBCode < 4925)return "X";
    if(GBCode >= 4925 && GBCode < 5249)return "Y";
    if(GBCode >= 5249 && GBCode <= 5589)return "Z";
    if(GBCode >= 5601 && GBCode <= 8794)
    {
    string CodeData = "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";
    string _gbcode = GBCode.ToString();
    int pos = (Convert.ToInt16(_gbcode.Substring(0,2))-56)*94+Convert.ToInt16(_gbcode.Substring(_gbcode.Length-2,2));
    return CodeData.Substring(pos-1,1);

    return "?";
    }
    #endregion
        }
        #endregion
      

  2.   

    比较长,但 冷僻字 都可以查出来