1
using
System;
2
using
System.Collections;
3
using
System.Text;
4
namespace
JJBase.String
5
{
6
/**//// <summary>
7
/// JJBase 的摘要说明。
8
/// </summary>
9
///
10
汉字转化成拼音#region 汉字转化成拼音
11
12
public class Chinese2Spell
13
{
14
15
/**//// <summary>
16
/// 获得拼音
17
/// </summary>
18
/// <param name="str_Spell">汉字</param>
19
/// <returns></returns>
20
//调用格式:GetSpell(string str_Spell)
21
//str_Spell是要转换的汉字
22
//返回结果是转化成的拼音
23
//目前还不完善,例如“爨”字转换不出来,需要进一步完善
24
public string GetSpell(string str_Chinese)
25
{
26
27
try
28
{
29
Hashtable t=hb();
30
31
byte[] b=System.Text.Encoding.Default.GetBytes(str_Chinese);
32
int p;
33
StringBuilder ret=new StringBuilder();
34
for(int i=0;i< b.Length;i++)
35
{
36
p=(int)b[i];
37
if(p>128)//160? or 128? 原文是160,待以后考证
38
{
39
p=p*256+b[++i]-65536;
40
ret.Append(g(t,p));
41
}
42
else
43
{
44
ret.Append((char)p);
45
}
46
}
47
t.Clear();
48
return ret.ToString();
49
}
50
catch
51
{
52
return "";
53
}
54
55
}
56
57
private string g(Hashtable ht,int num)
58
{
59
if(num < -20319||num > -10247)
60
return "";
61
while(!ht.ContainsKey(num))
62
num--;
63
return ht[num].ToString();
64
}
65
private Hashtable hb()
66
{
67
//尚不晚完善,例如“爨”就没有转换出来
68
Hashtable ht=new Hashtable();
69
ht.Add(-20319,"a");
70
ht.Add(-20317,"ai");ht.Add(-20304,"an"); ht.Add(-20295,"ang");
71
ht.Add(-20292,"ao");ht.Add(-20283,"ba"); ht.Add(-20265,"bai");
72
ht.Add(-20257,"ban");ht.Add(-20242,"bang"); ht.Add(-20230,"bao");
73
ht.Add(-20051,"bei"); ht.Add(-20036,"ben"); ht.Add(-20032,"beng");
74
ht.Add(-20026,"bi"); ht.Add(-20002,"bian"); ht.Add(-19990,"biao");
75
ht.Add(-19986,"bie"); ht.Add(-19982,"bin"); ht.Add(-19976,"bing");
76
ht.Add(-19805,"bo"); ht.Add(-19784,"bu"); ht.Add(-19775,"ca");
77
ht.Add(-19774,"cai"); ht.Add(-19763,"can"); ht.Add(-19756,"cang");
78
ht.Add(-19751,"cao"); ht.Add(-19746,"ce"); ht.Add(-19741,"ceng");
79
ht.Add(-19739,"cha"); ht.Add(-19728,"chai"); ht.Add(-19725,"chan");
80
ht.Add(-19715,"chang"); ht.Add(-19540,"chao"); ht.Add(-19531,"che");
81
ht.Add(-19525,"chen"); ht.Add(-19515,"cheng"); ht.Add(-19500,"chi");
82
ht.Add(-19484,"chong"); ht.Add(-19479,"chou"); ht.Add(-19467,"chu");
83
ht.Add(-19289,"chuai"); ht.Add(-19288,"chuan"); ht.Add(-19281,"chuang");
84
ht.Add(-19275,"chui"); ht.Add(-19270,"chun"); ht.Add(-19263,"chuo");
85
ht.Add(-19261,"ci"); ht.Add(-19249,"cong"); ht.Add(-19243,"cou");
86
ht.Add(-19242,"cu"); ht.Add(-19238,"cuan"); ht.Add(-19235,"cui");
87
ht.Add(-19227,"cun"); ht.Add(-19224,"cuo"); ht.Add(-19218,"da");
88
ht.Add(-19212,"dai"); ht.Add(-19038,"dan"); ht.Add(-19023,"dang");
89
ht.Add(-19018,"dao"); ht.Add(-19006,"de"); ht.Add(-19003,"deng");
90
ht.Add(-18996,"di"); ht.Add(-18977,"dian"); ht.Add(-18961,"diao");
91
ht.Add(-18952,"die"); ht.Add(-18783,"ding"); ht.Add(-18774,"diu");
92
ht.Add(-18773,"dong"); ht.Add(-18763,"dou"); ht.Add(-18756,"du");
93
ht.Add(-18741,"duan"); ht.Add(-18735,"dui"); ht.Add(-18731,"dun");
94
ht.Add(-18722,"duo"); ht.Add(-18710,"e"); ht.Add(-18697,"en");
95
ht.Add(-18696,"er"); ht.Add(-18526,"fa"); ht.Add(-18518,"fan");
96
ht.Add(-18501,"fang"); ht.Add(-18490,"fei"); ht.Add(-18478,"fen");
97
ht.Add(-18463,"feng"); ht.Add(-18448,"fo"); ht.Add(-18447,"fou");
98
ht.Add(-18446,"fu"); ht.Add(-18239,"ga"); ht.Add(-18237,"gai");
99
ht.Add(-18231,"gan"); ht.Add(-18220,"gang"); ht.Add(-18211,"gao");
100
ht.Add(-18201,"ge"); ht.Add(-18184,"gei"); ht.Add(-18183,"gen");
101
ht.Add(-18181,"geng"); ht.Add(-18012,"gong"); ht.Add(-17997,"gou");
102
ht.Add(-17988,"gu"); ht.Add(-17970,"gua"); ht.Add(-17964,"guai");
103
ht.Add(-17961,"guan"); ht.Add(-17950,"guang"); ht.Add(-17947,"gui");
104
ht.Add(-17931,"gun"); ht.Add(-17928,"guo"); ht.Add(-17922,"ha");
105
ht.Add(-17759,"hai"); ht.Add(-17752,"han"); ht.Add(-17733,"hang");
106
ht.Add(-17730,"hao"); ht.Add(-17721,"he"); ht.Add(-17703,"hei");
107
ht.Add(-17701,"hen"); ht.Add(-17697,"heng"); ht.Add(-17692,"hong");
108
ht.Add(-17683,"hou"); ht.Add(-17676,"hu"); ht.Add(-17496,"hua");
109
ht.Add(-17487,"huai"); ht.Add(-17482,"huan"); ht.Add(-17468,"huang");
110
ht.Add(-17454,"hui"); ht.Add(-17433,"hun"); ht.Add(-17427,"huo");
111
ht.Add(-17417,"ji"); ht.Add(-17202,"jia"); ht.Add(-17185,"jian");
112
ht.Add(-16983,"jiang"); ht.Add(-16970,"jiao"); ht.Add(-16942,"jie");
113
ht.Add(-16915,"jin"); ht.Add(-16733,"jing"); ht.Add(-16708,"jiong");
114
ht.Add(-16706,"jiu"); ht.Add(-16689,"ju"); ht.Add(-16664,"juan");
115
ht.Add(-16657,"jue"); ht.Add(-16647,"jun"); ht.Add(-16474,"ka");
116
ht.Add(-16470,"kai"); ht.Add(-16465,"kan"); ht.Add(-16459,"kang");
117
ht.Add(-16452,"kao"); ht.Add(-16448,"ke"); ht.Add(-16433,"ken");
118
ht.Add(-16429,"keng"); ht.Add(-16427,"kong"); ht.Add(-16423,"kou");
119
ht.Add(-16419,"ku"); ht.Add(-16412,"kua"); ht.Add(-16407,"kuai");
120
ht.Add(-16403,"kuan"); ht.Add(-16401,"kuang"); ht.Add(-16393,"kui");
121
ht.Add(-16220,"kun"); ht.Add(-16216,"kuo"); ht.Add(-16212,"la");
122
ht.Add(-16205,"lai"); ht.Add(-16202,"lan"); ht.Add(-16187,"lang");
123
ht.Add(-16180,"lao"); ht.Add(-16171,"le"); ht.Add(-16169,"lei");
124
ht.Add(-16158,"leng"); ht.Add(-16155,"li"); ht.Add(-15959,"lia");
125
ht.Add(-15958,"lian"); ht.Add(-15944,"liang"); ht.Add(-15933,"liao");
126
ht.Add(-15920,"lie"); ht.Add(-15915,"lin"); ht.Add(-15903,"ling");
127
ht.Add(-15889,"liu"); ht.Add(-15878,"long"); ht.Add(-15707,"lou");
128
ht.Add(-15701,"lu");ht.Add(-15681,"lv");ht.Add(-15667,"luan");
129
ht.Add(-15661,"lue");ht.Add(-15659,"lun");ht.Add(-15652,"luo");
130
ht.Add(-15640,"ma");ht.Add(-15631,"mai");ht.Add(-15625,"man");
131
ht.Add(-15454,"mang");ht.Add(-15448,"mao");ht.Add(-15436,"me");
132
ht.Add(-15435,"mei");ht.Add(-15419,"men");ht.Add(-15416,"meng");
133
ht.Add(-15408,"mi");ht.Add(-15394,"mian");ht.Add(-15385,"miao");
134
ht.Add(-15377,"mie");ht.Add(-15375,"min");ht.Add(-15369,"ming");
135
ht.Add(-15363,"miu");ht.Add(-15362,"mo");ht.Add(-15183,"mou");
136
ht.Add(-15180,"mu");ht.Add(-15165,"na");ht.Add(-15158,"nai");
137
ht.Add(-15153,"nan");ht.Add(-15150,"nang");ht.Add(-15149,"nao");
138
ht.Add(-15144,"ne");ht.Add(-15143,"nei");ht.Add(-15141,"nen");
139
ht.Add(-15140,"neng");ht.Add(-15139,"ni");ht.Add(-15128,"nian");
140
ht.Add(-15121,"niang");ht.Add(-15119,"niao");ht.Add(-15117,"nie");
141
ht.Add(-15110,"nin");ht.Add(-15109,"ning");ht.Add(-14941,"niu");
142
ht.Add(-14937,"nong");ht.Add(-14933,"nu");ht.Add(-14930,"nv");
143
ht.Add(-14929,"nuan");ht.Add(-14928,"nue");ht.Add(-14926,"nuo");
144
ht.Add(-14922,"o");ht.Add(-14921,"ou");ht.Add(-14914,"pa");
145
ht.Add(-14908,"pai");ht.Add(-14902,"pan");ht.Add(-14894,"pang");
146
ht.Add(-14889,"pao");ht.Add(-14882,"pei");ht.Add(-14873,"pen");
147
ht.Add(-14871,"peng");ht.Add(-14857,"pi");ht.Add(-14678,"pian");
148
ht.Add(-14674,"piao");ht.Add(-14670,"pie");ht.Add(-14668,"pin");
149
ht.Add(-14663,"ping");ht.Add(-14654,"po");ht.Add(-14645,"pu");
150
ht.Add(-14630,"qi");ht.Add(-14594,"qia");ht.Add(-14429,"qian");
151
ht.Add(-14407,"qiang");ht.Add(-14399,"qiao");ht.Add(-14384,"qie");
152
ht.Add(-14379,"qin");ht.Add(-14368,"qing");ht.Add(-14355,"qiong");
153
ht.Add(-14353,"qiu");ht.Add(-14345,"qu");ht.Add(-14170,"quan");
154
ht.Add(-14159,"que");ht.Add(-14151,"qun");ht.Add(-14149,"ran");
155
ht.Add(-14145,"rang");ht.Add(-14140,"rao");ht.Add(-14137,"re");
156
ht.Add(-14135,"ren");ht.Add(-14125,"reng");ht.Add(-14123,"ri");
157
ht.Add(-14122,"rong");ht.Add(-14112,"rou");ht.Add(-14109,"ru");
158
ht.Add(-14099,"ruan");ht.Add(-14097,"rui");ht.Add(-14094,"run");
159
ht.Add(-14092,"ruo");ht.Add(-14090,"sa");ht.Add(-14087,"sai");
160
ht.Add(-14083,"san");ht.Add(-13917,"sang");ht.Add(-13914,"sao");
161
ht.Add(-13910,"se");ht.Add(-13907,"sen");ht.Add(-13906,"seng");
162
ht.Add(-13905,"sha");ht.Add(-13896,"shai");ht.Add(-13894,"shan");
163
ht.Add(-13878,"shang");ht.Add(-13870,"shao");ht.Add(-13859,"she");
164
ht.Add(-13847,"shen");ht.Add(-13831,"sheng");ht.Add(-13658,"shi");
165
ht.Add(-13611,"shou");ht.Add(-13601,"shu");ht.Add(-13406,"shua");
166
ht.Add(-13404,"shuai");ht.Add(-13400,"shuan");ht.Add(-13398,"shuang");
167
ht.Add(-13395,"shui");ht.Add(-13391,"shun");ht.Add(-13387,"shuo");
168
ht.Add(-13383,"si");ht.Add(-13367,"song");ht.Add(-13359,"sou");
169
ht.Add(-13356,"su");ht.Add(-13343,"suan");ht.Add(-13340,"sui");
170
ht.Add(-13329,"sun");ht.Add(-13326,"suo");ht.Add(-13318,"ta");
171
ht.Add(-13147,"tai");ht.Add(-13138,"tan");ht.Add(-13120,"tang");
172
ht.Add(-13107,"tao");ht.Add(-13096,"te");ht.Add(-13095,"teng");
173
ht.Add(-13091,"ti");ht.Add(-13076,"tian");ht.Add(-13068,"tiao");
174
ht.Add(-13063,"tie");ht.Add(-13060,"ting");ht.Add(-12888,"tong");
175
ht.Add(-12875,"tou");ht.Add(-12871,"tu");ht.Add(-12860,"tuan");
176
ht.Add(-12858,"tui");ht.Add(-12852,"tun");ht.Add(-12849,"tuo");
177
ht.Add(-12838,"wa");ht.Add(-12831,"wai");ht.Add(-12829,"wan");
178
ht.Add(-12812,"wang");ht.Add(-12802,"wei");ht.Add(-12607,"wen");
179
ht.Add(-12597,"weng");ht.Add(-12594,"wo");ht.Add(-12585,"wu");
180
ht.Add(-12556,"xi");ht.Add(-12359,"xia");ht.Add(-12346,"xian");
181
ht.Add(-12320,"xiang");ht.Add(-12300,"xiao");ht.Add(-12120,"xie");
182
ht.Add(-12099,"xin");ht.Add(-12089,"xing");ht.Add(-12074,"xiong");
183
ht.Add(-12067,"xiu");ht.Add(-12058,"xu");ht.Add(-12039,"xuan");
184
ht.Add(-11867,"xue");ht.Add(-11861,"xun");ht.Add(-11847,"ya");
185
ht.Add(-11831,"yan");ht.Add(-11798,"yang");ht.Add(-11781,"yao");
186
ht.Add(-11604,"ye");ht.Add(-11589,"yi");ht.Add(-11536,"yin");
187
ht.Add(-11358,"ying");ht.Add(-11340,"yo");ht.Add(-11339,"yong");
188
ht.Add(-11324,"you");ht.Add(-11303,"yu");ht.Add(-11097,"yuan");
189
ht.Add(-11077,"yue");ht.Add(-11067,"yun");ht.Add(-11055,"za");
190
ht.Add(-11052,"zai");ht.Add(-11045,"zan");ht.Add(-11041,"zang");
191
ht.Add(-11038,"zao");ht.Add(-11024,"ze");ht.Add(-11020,"zei");
192
ht.Add(-11019,"zen");ht.Add(-11018,"zeng");ht.Add(-11014,"zha");
193
ht.Add(-10838,"zhai");ht.Add(-10832,"zhan");ht.Add(-10815,"zhang");
194
ht.Add(-10800,"zhao");ht.Add(-10790,"zhe");ht.Add(-10780,"zhen");
195
ht.Add(-10764,"zheng");ht.Add(-10587,"zhi");ht.Add(-10544,"zhong");
196
ht.Add(-10533,"zhou");ht.Add(-10519,"zhu");ht.Add(-10331,"zhua");
197
ht.Add(-10329,"zhuai");ht.Add(-10328,"zhuan");ht.Add(-10322,"zhuang");
198
ht.Add(-10315,"zhui");ht.Add(-10309,"zhun");ht.Add(-10307,"zhuo");
199
ht.Add(-10296,"zi");ht.Add(-10281,"zong");ht.Add(-10274,"zou");
200
ht.Add(-10270,"zu");ht.Add(-10262,"zuan");ht.Add(-10260,"zui");
201
ht.Add(-10256,"zun");ht.Add(-10254,"zuo");ht.Add(-10247,"zz");
202
return ht;
203
}
204
205
}
206
# endregion
207
}

2

3

4

5



6


7

8

9

10


11

12

13



14

15


16

17

18

19

20

21

22

23

24

25



26

27

28



29

30

31

32

33

34

35



36

37

38



39

40

41

42

43



44

45

46

47

48

49

50

51



52

53

54

55

56

57

58



59

60

61

62

63

64

65

66



67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207
