看看这个贴子吧.
http://community.csdn.net/Expert/topic/2657/2657633.xml?temp=.5500452

解决方案 »

  1.   

    http://dev.csdn.net/develop/article/25/25536.shtm
      

  2.   

    我写的一个函数!!!!!!!!!
    //****************************************/取的一个汉字的首字母 public string  Extract_HZ(string HZ) 
    {
    byte[] ZW = new byte[2];
    long HZ_INT;
    ZW = System.Text.Encoding.Default.GetBytes(HZ);
                       // get the  array of byte from the single char 
    //int i1 = (short)(array[0] - oxa1);
    //int i2 = (short)(array[1] - oxa1);
    int i1 = (short)(ZW[0]);
    int i2 = (short)(ZW[1]);
    HZ_INT=i1*256+i2; //  expresstion
    //table of the constant list
    // 'A';     //45217..45252
    // 'B';     //45253..45760
    // 'C';     //45761..46317
    // 'D';     //46318..46825
    // 'E';     //46826..47009
    // 'F';     //47010..47296
    // 'G';     //47297..47613 // 'H';     //47614..48118
    // 'J';     //48119..49061
    // 'K';     //49062..49323
    // 'L';     //49324..49895
    // 'M';     //49896..50370
    // 'N';     //50371..50613
    // 'O';     //50614..50621
    // 'P';     //50622..50905
    // 'Q';     //50906..51386 // 'R';     //51387..51445
    // 'S';     //51446..52217
    // 'T';     //52218..52697
    //没有U,V
    // 'W';     //52698..52979
    // 'X';     //52980..53640
    // 'Y';     //53689..54480
    // 'Z';     //54481..55289 // HZ_INT match  the constant
    if  ((HZ_INT>=45217) && (HZ_INT<=45252))
    {
    return "A";
    }
    if ((HZ_INT>=45253) && (HZ_INT<=45760))
    {
    return "B";
    }
    if  ((HZ_INT>=45761) && (HZ_INT<=46317))
    {
    return "C"; }
    if ((HZ_INT>=46318) && (HZ_INT<=46825))
    {
    return "D";
    }
    if  ((HZ_INT>=46826) && (HZ_INT<=47009))
    {
    return "E";
    }
    if ((HZ_INT>=47010) && (HZ_INT<=47296))
    {
    return "F";
    }
    if ((HZ_INT>=47297) && (HZ_INT<=47613))
    {
    return "G";
    }
    //**************************
    if ((HZ_INT>=47614) && (HZ_INT<=48118))
    {
    //MessageBox.Show("H");
    return "H";
    }

    if ((HZ_INT>=48119) && (HZ_INT<=49061))
    {
    return "J";
    }
    if ((HZ_INT>=49062) && (HZ_INT<=49323))
    {
    return "K";
    }
    if ((HZ_INT>=49324) && (HZ_INT<=49895))
    {
    return "L";
    }
    if ((HZ_INT>=49896) && (HZ_INT<=50370))
    {
    return "M";
    } if ((HZ_INT>=50371) && (HZ_INT<=50613))
    {
    return "N"; }
    if ((HZ_INT>=50614) && (HZ_INT<=50621))
    {
    return "O";
    }
    if ((HZ_INT>=50622) && (HZ_INT<=50905))
    {
    return "P"; }
    if ((HZ_INT>=50906) && (HZ_INT<=.51386))
    {
    return "Q"; }
    //*********************
    if ((HZ_INT>=51387) && (HZ_INT<=51445))
    {
    return "R";
    }
    if ((HZ_INT>=51446) && (HZ_INT<=52217))
    {
    return "S";
    }
    if ((HZ_INT>=52218) && (HZ_INT<=52697))
    {
    return "T";
    }
    if ((HZ_INT>=52698) && (HZ_INT<=52979))
    {
    return "W"; 
    }
    if ((HZ_INT>=52980) && (HZ_INT<=53640))
    {
    return "X";
    }
    if ((HZ_INT>=53689) && (HZ_INT<=54480))
    {
    return "Y";
    }
    if ((HZ_INT>=54481) && (HZ_INT<=55289))
    {
    return "Z";
    }
    return ("");
    }
      

  3.   

    楼上的代码由两个严重缺陷:1、zh/ch/sh,三种拼音没有考虑到
    2、诸如:坳这种非标准的汉字,没有考虑到。你可以看看gb2312的字码表。