class Program
2 {
3 /// <summary>
4 /// 获得拼音
5 /// </summary>
6 /// <param name="str_Spell">汉字</param>
7 /// <returns></returns>
8 public static string GetSpell(string str_Spell)
9 {
10
11 try
12 {
13 Hashtable t = GetHashtable();
14
15 byte[] btArray = System.Text.Encoding.Default.GetBytes(str_Spell);
16 int p;
17 StringBuilder ret = new StringBuilder();
18 for (int i = 0; i < btArray.Length; i++)
19 {
20 p = (int)btArray[i];
21 if (p > 160)
22 {
23 p = p * 256 + btArray[++i] - 65536;
24 ret.Append(GetString(t, p));
25 }
26 else
27 {
28 ret.Append((char)p);
29 }
30 }
31 t.Clear();
32 return ret.ToString();
33 }
34 catch
35 {
36 return "";
37 }
38
39 }
40 private static string GetString(Hashtable hashtable, int num)
41 {
42 if (num < -20319 || num > -10247)
43 return "";
44 while (!hashtable.ContainsKey(num))
45 num--;
46 return hashtable[num].ToString();
47 }
48
49 private static Hashtable GetHashtable()
50 {
51 Hashtable ht = new Hashtable();
52 ht.Add(-20319, "a");
53 ht.Add(-20317, "ai"); ht.Add(-20304, "an"); ht.Add(-20295, "ang");
54 ht.Add(-20292, "ao"); ht.Add(-20283, "ba"); ht.Add(-20265, "bai");
55 ht.Add(-20257, "ban"); ht.Add(-20242, "bang"); ht.Add(-20230, "bao");
56 ht.Add(-20051, "bei"); ht.Add(-20036, "ben"); ht.Add(-20032, "beng");
57 ht.Add(-20026, "bi"); ht.Add(-20002, "bian"); ht.Add(-19990, "biao");
58 ht.Add(-19986, "bie"); ht.Add(-19982, "bin"); ht.Add(-19976, "bing");
59 ht.Add(-19805, "bo"); ht.Add(-19784, "bu"); ht.Add(-19775, "ca");
60 ht.Add(-19774, "cai"); ht.Add(-