如题比如 我输入 “里斯” 也能查询到“李四”?

解决方案 »

  1.   

      
     id name pinyin 
      

  2.   

    获取中文拼音可以用 Microsoft Visual Studio International Pack,微软的网站上可以下载到,http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=44CAC7F0-633B-477D-AED2-99AEE642FC10&displaylang=zh-cn,其中的 Simplified Chinese Pin-Yin Conversion Library - 支持获取简体中文字符的常用属性比如拼音,多音字,同音字,笔画数。引入到项目中就可以了。
      

  3.   

    网上有这样的DLL
    输入拼音查汉字,如输入li   可以查出:李,里,你引用这样的DLL或者自已写个DLL也是可以的
      

  4.   

    给楼主一个方法(网上找的),用来生成拼音    /// <summary>   
                /// 生成拼音简码   
                /// </summary>   
                /// <param name="unicodeString">Unicode编码字符串</param>   
                /// <returns>拼音简码:string</returns>   
                public   static   string  GetPinyinCode( string  unicodeString)  
                {  
                    int  i = 0;  
                    ushort  key = 0;  
                    string  strResult =  string .Empty;             //创建两个不同的encoding对象   
                    Encoding unicode = Encoding.Unicode;  
                    //创建GBK码对象   
                    Encoding gbk = Encoding.GetEncoding(936);  
                    //将unicode字符串转换为字节   
                    byte [] unicodeBytes = unicode.GetBytes(unicodeString);  
                    //再转化为GBK码   
                    byte [] gbkBytes = Encoding.Convert(unicode, gbk, unicodeBytes);  
                    while  (i < gbkBytes.Length)  
                    {  
                        //如果为数字/字母/其他ASCII符号   
                        if  (gbkBytes <= 127)  
                        {  
                            strResult = strResult + (char )gbkBytes;  
                            i++;  
                        }  
                        #region 否则生成汉字拼音简码,取拼音首字母   
                        else   
                        {  
                            key = (ushort )(gbkBytes * 256 + gbkBytes[i + 1]);  
                            if  (key >=  '/uB0A1'  && key <=  '/uB0C4' )  
                            {  
                                strResult = strResult + "A" ;  
                            }  
                            else   if  (key >=  '/uB0C5'  && key <=  '/uB2C0' )  
                            {  
                                strResult = strResult + "B" ;  
                            }  
                            else   if  (key >=  '/uB2C1'  && key <=  '/uB4ED' )  
                            {  
                                strResult = strResult + "C" ;  
                            }  
                            else   if  (key >=  '/uB4EE'  && key <=  '/uB6E9' )  
                            {  
                                strResult = strResult + "D" ;  
                            }  
                            else   if  (key >=  '/uB6EA'  && key <=  '/uB7A1' )  
                            {  
                                strResult = strResult + "E" ;  
                            }  
                            else   if  (key >=  '/uB7A2'  && key <=  '/uB8C0' )  
                            {  
                                strResult = strResult + "F" ;  
                            }  
                            else   if  (key >=  '/uB8C1'  && key <=  '/uB9FD' )  
                            {  
                                strResult = strResult + "G" ;  
                            }  
                            else   if  (key >=  '/uB9FE'  && key <=  '/uBBF6' )  
                            {  
                                strResult = strResult + "H" ;  
                            }  
                            else   if  (key >=  '/uBBF7'  && key <=  '/uBFA5' )  
                            {  
                                strResult = strResult + "J" ;  
                            }  
                            else   if  (key >=  '/uBFA6'  && key <=  '/uC0AB' )  
                            {  
                                strResult = strResult + "K" ;  
                            }  
                            else   if  (key >=  '/uC0AC'  && key <=  '/uC2E7' )  
                            {  
                                strResult = strResult + "L" ;  
                            }  
                            else   if  (key >=  '/uC2E8'  && key <=  '/uC4C2' )  
                            {  
                                strResult = strResult + "M" ;  
                            }  
                            else   if  (key >=  '/uC4C3'  && key <=  '/uC5B5' )  
                            {  
                                strResult = strResult + "N" ;  
                            }  
                            else   if  (key >=  '/uC5B6'  && key <=  '/uC5BD' )  
                            {  
                                strResult = strResult + "O" ;  
                            }  
                            else   if  (key >=  '/uC5BE'  && key <=  '/uC6D9' )  
                            {  
                                strResult = strResult + "P" ;  
                            }  
                            else   if  (key >=  '/uC6DA'  && key <=  '/uC8BA' )  
                            {  
                                strResult = strResult + "Q" ;  
                            }  
                            else   if  (key >=  '/uC8BB'  && key <=  '/uC8F5' )  
                            {  
                                strResult = strResult + "R" ;  
                            }  
                            else   if  (key >=  '/uC8F6'  && key <=  '/uCBF9' )  
                            {  
                                strResult = strResult + "S" ;  
                            }  
                            else   if  (key >=  '/uCBFA'  && key <=  '/uCDD9' )  
                            {  
                                strResult = strResult + "T" ;  
                            }  
                            else   if  (key >=  '/uCDDA'  && key <=  '/uCEF3' )  
                            {  
                                strResult = strResult + "W" ;  
                            }  
                            else   if  (key >=  '/uCEF4'  && key <=  '/uD188' )  
                            {  
                                strResult = strResult + "X" ;  
                            }  
                            else   if  (key >=  '/uD1B9'  && key <=  '/uD4D0' )  
                            {  
                                strResult = strResult + "Y" ;  
                            }  
                            else   if  (key >=  '/uD4D1'  && key <=  '/uD7F9' )  
                            {  
                                strResult = strResult + "Z" ;  
                            }  
                            else   
                            {  
                                strResult = strResult + "?" ;  
                            }  
                            i = i + 2;  
                        }  
                        #endregion   
                    }//end while   
                    return  strResult;  
                }