可以看看这个http://community.csdn.net/Expert/topic/2964/2964857.xml?temp=.7089197

解决方案 »

  1.   

    to wen2425
    收到了,谢谢,但是只有一级汉字的,无法使用to devfan
    那篇文章我以前看到过的,也是一样的问题,只有一级汉字顺便说一下我要这个的原因,因为我看了很多取汉字拼音的代码都有点小问题,或者少字,或者只能取声母,所以我想再整理一下有在金山词霸这样的公司工作的吗? 那里应当有这样的表 :)实在不行只能自己从输入法中提取了
      

  2.   

    另外再提醒一下,那些用Asc函数提取编码的函数,
    (就是上面那个文章中的)估计到有些操作系统下不能正常工作,因为那个是用Encoding.Default 转换Unicode的,如果当前Default不是gb2312的话,就全乱了,有兴趣的可以试试
      

  3.   

    http://www.csdn.net/Develop/article/25/25536.shtm
    http://community.csdn.net/Expert/topic/2718/2718859.xml?temp=.861294
    http://community.csdn.net/Expert/topic/2931/2931834.xml?temp=.6253168
    http://community.csdn.net/Expert/topic/2847/2847459.xml?temp=.8413965
      

  4.   

    to bitsbird那不是我想要的啊,原因我在上面已经说了
      

  5.   

    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 ("");
    }