高手来帮帮忙啊,C#汉字转拼音少了个字啊。。。。大家来帮忙加上 大家帮忙啊....................................... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 #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 比较长,但 冷僻字 都可以查出来 谁有(C#)日历控件,不要太复杂,主要是用在程序上, 文本复制问题 如何高效的将excel导入sqlserver [共享]+[散分] 关于使用SQLSMO组件还原数据库问题 急!网站发布主目录设置在其他机器上怎么就调试不好 关于WebBrowser的DocumentCompleted事件重复执行的问题,高手之招啊~~ 请高手指点UDP穿越socks5代理的协商问题 帮下忙!急!!! 在ListView里实现刷新时出现的问题 这个存储过程怎么调用啊?请帮忙.在线等.... c++函数声明在C#里该怎样写啊 为什么我在winForm中的menuStrip控件中输不了中文?
/// <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