先看运行结果
直接上代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 转换拼音码
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
static public string GetChineseSpell(string strText)
{
int len = strText.Length;
string myStr = "";
for (int i = 0; i < len; i++)
{
myStr += getSpell(strText.Substring(i, 1));
}
return myStr;
}
static public string getSpell(string cnChar)
{
byte[] arrCN = Encoding.Default.GetBytes(cnChar);
if (arrCN.Length > 1)
{
int area = (short)arrCN[0];
int pos = (short)arrCN[1];
int code = (area << 8) + pos;
int[] areacode = { 45217, 45253, 45761, 46318, 46826, 47010, 47297, 47614, 48119, 48119, 49062, 49324, 49896, 50371, 50614, 50622, 50906, 51387, 51446, 52218, 52698, 52698, 52698, 52980, 53689, 54481 };
for (int i = 0; i < 26; i++)
{
int max = 55290;
if (i != 25) max = areacode[i + 1];
if (areacode[i] <= code && code < max)
{
return Encoding.Default.GetString(new byte[] { (byte)(65 + i) });
}
}
return "*";
}
else return cnChar;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(GetChineseSpell(textBox1.Text.Trim()));
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show(new Class1().GetSpell(textBox1.Text.Trim()));
}
}
}
//转全拼音
using System;
using System.Collections;
using System.Text;
namespace 转换拼音码
{
/// <summary>
/// JJBase 的摘要说明。
/// </summary>
/// 汉字转化成拼音
#region 汉字转化成拼音
public class Class1
{
/**//// <summary>
/// 获得拼音
/// </summary>
/// <param name="str_Spell">汉字</param>
/// <returns></returns>
//调用格式:GetSpell(string str_Spell)
//str_Spell是要转换的汉字
//返回结果是转化成的拼音
//目前还不完善,例如“爨”字转换不出来,需要进一步完善
public string GetSpell(string str_Chinese)
{
try
{
Hashtable t = hb();
byte[] b = System.Text.Encoding.Default.GetBytes(str_Chinese);
int p;
StringBuilder ret = new StringBuilder();
for(int i = 0; i<b.Length;i++)
{
p=(int)b[i];
if(p>128)//160? or 128? 原文是160,待以后考证
{
p=p*256+b[++i]-65536;
ret.Append(g(t, p));
}
else
{
ret.Append((char)p);
}
}
t.Clear();
return ret.ToString();
}
catch
{
return "";
}
}
private string g(Hashtable cxc, int num)
{
if(num< -20319||num> -10247)
return "";
while(!cxc.ContainsKey(num))
num--;
return cxc[num].ToString();
}
private Hashtable hb()
{
//尚不晚完善,例如“爨”就没有转换出来
Hashtable cxc = new Hashtable();
cxc.Add(-20319,"a");
cxc.Add(-20317,"ai");cxc.Add(-20304,"an"); cxc.Add(-20295,"ang");
cxc.Add(-20292,"ao");cxc.Add(-20283,"ba"); cxc.Add(-20265,"bai");
cxc.Add(-20257,"ban");cxc.Add(-20242,"bang"); cxc.Add(-20230,"bao");
cxc.Add(-20051,"bei"); cxc.Add(-20036,"ben"); cxc.Add(-20032,"beng");
cxc.Add(-20026,"bi"); cxc.Add(-20002,"bian"); cxc.Add(-19990,"biao");
cxc.Add(-19986,"bie"); cxc.Add(-19982,"bin"); cxc.Add(-19976,"bing");
cxc.Add(-19805,"bo"); cxc.Add(-19784,"bu"); cxc.Add(-19775,"ca");
cxc.Add(-19774,"cai"); cxc.Add(-19763,"can"); cxc.Add(-19756,"cang");
cxc.Add(-19751,"cao"); cxc.Add(-19746,"ce"); cxc.Add(-19741,"ceng");
cxc.Add(-19739,"cha"); cxc.Add(-19728,"chai"); cxc.Add(-19725,"chan");
cxc.Add(-19715,"chang"); cxc.Add(-19540,"chao"); cxc.Add(-19531,"che");
cxc.Add(-19525,"chen"); cxc.Add(-19515,"cheng"); cxc.Add(-19500,"chi");
cxc.Add(-19484,"chong"); cxc.Add(-19479,"chou"); cxc.Add(-19467,"chu");
cxc.Add(-19289,"chuai"); cxc.Add(-19288,"chuan"); cxc.Add(-19281,"chuang");
cxc.Add(-19275,"chui"); cxc.Add(-19270,"chun"); cxc.Add(-19263,"chuo");
cxc.Add(-19261,"ci"); cxc.Add(-19249,"cong"); cxc.Add(-19243,"cou");
cxc.Add(-19242,"cu"); cxc.Add(-19238,"cuan"); cxc.Add(-19235,"cui");
cxc.Add(-19227,"cun"); cxc.Add(-19224,"cuo"); cxc.Add(-19218,"da");
cxc.Add(-19212,"dai"); cxc.Add(-19038,"dan"); cxc.Add(-19023,"dang");
cxc.Add(-19018,"dao"); cxc.Add(-19006,"de"); cxc.Add(-19003,"deng");
cxc.Add(-18996,"di"); cxc.Add(-18977,"dian"); cxc.Add(-18961,"diao");
cxc.Add(-18952,"die"); cxc.Add(-18783,"ding"); cxc.Add(-18774,"diu");
cxc.Add(-18773,"dong"); cxc.Add(-18763,"dou"); cxc.Add(-18756,"du");
cxc.Add(-18741,"duan"); cxc.Add(-18735,"dui"); cxc.Add(-18731,"dun");
cxc.Add(-18722,"duo"); cxc.Add(-18710,"e"); cxc.Add(-18697,"en");
cxc.Add(-18696,"er"); cxc.Add(-18526,"fa"); cxc.Add(-18518,"fan");
cxc.Add(-18501,"fang"); cxc.Add(-18490,"fei"); cxc.Add(-18478,"fen");
cxc.Add(-18463,"feng"); cxc.Add(-18448,"fo"); cxc.Add(-18447,"fou");
cxc.Add(-18446,"fu"); cxc.Add(-18239,"ga"); cxc.Add(-18237,"gai");
cxc.Add(-18231,"gan"); cxc.Add(-18220,"gang"); cxc.Add(-18211,"gao");
cxc.Add(-18201,"ge"); cxc.Add(-18184,"gei"); cxc.Add(-18183,"gen");
cxc.Add(-18181,"geng"); cxc.Add(-18012,"gong"); cxc.Add(-17997,"gou");
cxc.Add(-17988,"gu"); cxc.Add(-17970,"gua"); cxc.Add(-17964,"guai");
cxc.Add(-17961,"guan"); cxc.Add(-17950,"guang"); cxc.Add(-17947,"gui");
cxc.Add(-17931,"gun"); cxc.Add(-17928,"guo"); cxc.Add(-17922,"ha");
cxc.Add(-17759,"hai"); cxc.Add(-17752,"han"); cxc.Add(-17733,"hang");
cxc.Add(-17730,"hao"); cxc.Add(-17721,"he"); cxc.Add(-17703,"hei");
cxc.Add(-17701,"hen"); cxc.Add(-17697,"heng"); cxc.Add(-17692,"hong");
cxc.Add(-17683,"hou"); cxc.Add(-17676,"hu"); cxc.Add(-17496,"hua");
cxc.Add(-17487,"huai"); cxc.Add(-17482,"huan"); cxc.Add(-17468,"huang");
cxc.Add(-17454,"hui"); cxc.Add(-17433,"hun"); cxc.Add(-17427,"huo");
cxc.Add(-17417,"ji"); cxc.Add(-17202,"jia"); cxc.Add(-17185,"jian");
cxc.Add(-16983,"jiang"); cxc.Add(-16970,"jiao"); cxc.Add(-16942,"jie");
cxc.Add(-16915,"jin"); cxc.Add(-16733,"jing"); cxc.Add(-16708,"jiong");
cxc.Add(-16706,"jiu"); cxc.Add(-16689,"ju"); cxc.Add(-16664,"juan");
cxc.Add(-16657,"jue"); cxc.Add(-16647,"jun"); cxc.Add(-16474,"ka");
cxc.Add(-16470,"kai"); cxc.Add(-16465,"kan"); cxc.Add(-16459,"kang");
cxc.Add(-16452,"kao"); cxc.Add(-16448,"ke"); cxc.Add(-16433,"ken");
cxc.Add(-16429,"keng"); cxc.Add(-16427,"kong"); cxc.Add(-16423,"kou");
cxc.Add(-16419,"ku"); cxc.Add(-16412,"kua"); cxc.Add(-16407,"kuai");
cxc.Add(-16403,"kuan"); cxc.Add(-16401,"kuang"); cxc.Add(-16393,"kui");
cxc.Add(-16220,"kun"); cxc.Add(-16216,"kuo"); cxc.Add(-16212,"la");
cxc.Add(-16205,"lai"); cxc.Add(-16202,"lan"); cxc.Add(-16187,"lang");
cxc.Add(-16180,"lao"); cxc.Add(-16171,"le"); cxc.Add(-16169,"lei");
cxc.Add(-16158,"leng"); cxc.Add(-16155,"li"); cxc.Add(-15959,"lia");
cxc.Add(-15958,"lian"); cxc.Add(-15944,"liang"); cxc.Add(-15933,"liao");
cxc.Add(-15920,"lie"); cxc.Add(-15915,"lin"); cxc.Add(-15903,"ling");
cxc.Add(-15889,"liu"); cxc.Add(-15878,"long"); cxc.Add(-15707,"lou");
cxc.Add(-15701,"lu");cxc.Add(-15681,"lv");cxc.Add(-15667,"luan");
cxc.Add(-15661,"lue");cxc.Add(-15659,"lun");cxc.Add(-15652,"luo");
cxc.Add(-15640,"ma");cxc.Add(-15631,"mai");cxc.Add(-15625,"man");
cxc.Add(-15454,"mang");cxc.Add(-15448,"mao");cxc.Add(-15436,"me");
cxc.Add(-15435,"mei");cxc.Add(-15419,"men");cxc.Add(-15416,"meng");
cxc.Add(-15408,"mi");cxc.Add(-15394,"mian");cxc.Add(-15385,"miao");
cxc.Add(-15377,"mie");cxc.Add(-15375,"min");cxc.Add(-15369,"ming");
cxc.Add(-15363,"miu");cxc.Add(-15362,"mo");cxc.Add(-15183,"mou");
cxc.Add(-15180,"mu");cxc.Add(-15165,"na");cxc.Add(-15158,"nai");
cxc.Add(-15153,"nan");cxc.Add(-15150,"nang");cxc.Add(-15149,"nao");
cxc.Add(-15144,"ne");cxc.Add(-15143,"nei");cxc.Add(-15141,"nen");
cxc.Add(-15140,"neng");cxc.Add(-15139,"ni");cxc.Add(-15128,"nian");
cxc.Add(-15121,"niang");cxc.Add(-15119,"niao");cxc.Add(-15117,"nie");
cxc.Add(-15110,"nin");cxc.Add(-15109,"ning");cxc.Add(-14941,"niu");
cxc.Add(-14937,"nong");cxc.Add(-14933,"nu");cxc.Add(-14930,"nv");
cxc.Add(-14929,"nuan");cxc.Add(-14928,"nue");cxc.Add(-14926,"nuo");
cxc.Add(-14922,"o");cxc.Add(-14921,"ou");cxc.Add(-14914,"pa");
cxc.Add(-14908,"pai");cxc.Add(-14902,"pan");cxc.Add(-14894,"pang");
cxc.Add(-14889,"pao");cxc.Add(-14882,"pei");cxc.Add(-14873,"pen");
cxc.Add(-14871,"peng");cxc.Add(-14857,"pi");cxc.Add(-14678,"pian");
cxc.Add(-14674,"piao");cxc.Add(-14670,"pie");cxc.Add(-14668,"pin");
cxc.Add(-14663,"ping");cxc.Add(-14654,"po");cxc.Add(-14645,"pu");
cxc.Add(-14630,"qi");cxc.Add(-14594,"qia");cxc.Add(-14429,"qian");
cxc.Add(-14407,"qiang");cxc.Add(-14399,"qiao");cxc.Add(-14384,"qie");
cxc.Add(-14379,"qin");cxc.Add(-14368,"qing");cxc.Add(-14355,"qiong");
cxc.Add(-14353,"qiu");cxc.Add(-14345,"qu");cxc.Add(-14170,"quan");
cxc.Add(-14159,"que");cxc.Add(-14151,"qun");cxc.Add(-14149,"ran");
cxc.Add(-14145,"rang");cxc.Add(-14140,"rao");cxc.Add(-14137,"re");
cxc.Add(-14135,"ren");cxc.Add(-14125,"reng");cxc.Add(-14123,"ri");
cxc.Add(-14122,"rong");cxc.Add(-14112,"rou");cxc.Add(-14109,"ru");
cxc.Add(-14099,"ruan");cxc.Add(-14097,"rui");cxc.Add(-14094,"run");
cxc.Add(-14092,"ruo");cxc.Add(-14090,"sa");cxc.Add(-14087,"sai");
cxc.Add(-14083,"san");cxc.Add(-13917,"sang");cxc.Add(-13914,"sao");
cxc.Add(-13910,"se");cxc.Add(-13907,"sen");cxc.Add(-13906,"seng");
cxc.Add(-13905,"sha");cxc.Add(-13896,"shai");cxc.Add(-13894,"shan");
cxc.Add(-13878,"shang");cxc.Add(-13870,"shao");cxc.Add(-13859,"she");
cxc.Add(-13847,"shen");cxc.Add(-13831,"sheng");cxc.Add(-13658,"shi");
cxc.Add(-13611,"shou");cxc.Add(-13601,"shu");cxc.Add(-13406,"shua");
cxc.Add(-13404,"shuai");cxc.Add(-13400,"shuan");cxc.Add(-13398,"shuang");
cxc.Add(-13395,"shui");cxc.Add(-13391,"shun");cxc.Add(-13387,"shuo");
cxc.Add(-13383,"si");cxc.Add(-13367,"song");cxc.Add(-13359,"sou");
cxc.Add(-13356,"su");cxc.Add(-13343,"suan");cxc.Add(-13340,"sui");
cxc.Add(-13329,"sun");cxc.Add(-13326,"suo");cxc.Add(-13318,"ta");
cxc.Add(-13147,"tai");cxc.Add(-13138,"tan");cxc.Add(-13120,"tang");
cxc.Add(-13107,"tao");cxc.Add(-13096,"te");cxc.Add(-13095,"teng");
cxc.Add(-13091,"ti");cxc.Add(-13076,"tian");cxc.Add(-13068,"tiao");
cxc.Add(-13063,"tie");cxc.Add(-13060,"ting");cxc.Add(-12888,"tong");
cxc.Add(-12875,"tou");cxc.Add(-12871,"tu");cxc.Add(-12860,"tuan");
cxc.Add(-12858,"tui");cxc.Add(-12852,"tun");cxc.Add(-12849,"tuo");
cxc.Add(-12838,"wa");cxc.Add(-12831,"wai");cxc.Add(-12829,"wan");
cxc.Add(-12812,"wang");cxc.Add(-12802,"wei");cxc.Add(-12607,"wen");
cxc.Add(-12597,"weng");cxc.Add(-12594,"wo");cxc.Add(-12585,"wu");
cxc.Add(-12556,"xi");cxc.Add(-12359,"xia");cxc.Add(-12346,"xian");
cxc.Add(-12320,"xiang");cxc.Add(-12300,"xiao");cxc.Add(-12120,"xie");
cxc.Add(-12099,"xin");cxc.Add(-12089,"xing");cxc.Add(-12074,"xiong");
cxc.Add(-12067,"xiu");cxc.Add(-12058,"xu");cxc.Add(-12039,"xuan");
cxc.Add(-11867,"xue");cxc.Add(-11861,"xun");cxc.Add(-11847,"ya");
cxc.Add(-11831,"yan");cxc.Add(-11798,"yang");cxc.Add(-11781,"yao");
cxc.Add(-11604,"ye");cxc.Add(-11589,"yi");cxc.Add(-11536,"yin");
cxc.Add(-11358,"ying");cxc.Add(-11340,"yo");cxc.Add(-11339,"yong");
cxc.Add(-11324,"you");cxc.Add(-11303,"yu");cxc.Add(-11097,"yuan");
cxc.Add(-11077,"yue");cxc.Add(-11067,"yun");cxc.Add(-11055,"za");
cxc.Add(-11052,"zai");cxc.Add(-11045,"zan");cxc.Add(-11041,"zang");
cxc.Add(-11038,"zao");cxc.Add(-11024,"ze");cxc.Add(-11020,"zei");
cxc.Add(-11019,"zen");cxc.Add(-11018,"zeng");cxc.Add(-11014,"zha");
cxc.Add(-10838,"zhai");cxc.Add(-10832,"zhan");cxc.Add(-10815,"zhang");
cxc.Add(-10800,"zhao");cxc.Add(-10790,"zhe");cxc.Add(-10780,"zhen");
cxc.Add(-10764,"zheng");cxc.Add(-10587,"zhi");cxc.Add(-10544,"zhong");
cxc.Add(-10533,"zhou");cxc.Add(-10519,"zhu");cxc.Add(-10331,"zhua");
cxc.Add(-10329,"zhuai");cxc.Add(-10328,"zhuan");cxc.Add(-10322,"zhuang");
cxc.Add(-10315,"zhui");cxc.Add(-10309,"zhun");cxc.Add(-10307,"zhuo");
cxc.Add(-10296,"zi");cxc.Add(-10281,"zong");cxc.Add(-10274,"zou");
cxc.Add(-10270,"zu");cxc.Add(-10262,"zuan");cxc.Add(-10260,"zui");
cxc.Add(-10256,"zun");cxc.Add(-10254,"zuo");cxc.Add(-10247,"zz");
return cxc;
}
}
# endregion
}