ASP.NET汉字转拼音 - 输入汉字获取其拼音的具体实现

微软为了开发者实现国际化语言的互转,提供了Microsoft Visual Studio International Pack,这个扩展包里面有中文、日文、韩文、英语等各国语言包,并提供方法实现互转、获取拼音、获取字数、甚至获取笔画数等等。

首先,下载Microsoft Visual Studio International Pack语言包,下载地址分别如下:

vsintlpack1:http://yunpan.cn/c3G8hGdBIiaCB  访问密码 7b46

Vsintlpack2:http://yunpan.cn/c3GEgL46z6zzY  访问密码 58fe

下载后分别是“vsintlpack1.zip”、“Vsintlpack2.msi”、双击“Vsintlpack2.msi”安装、路径随意、但是要记得、因为一会要引用的、
安装“Vsintlpack2.msi”之后、解压“vsintlpack1.zip”、里面包含七个语言包、
例如中文转拼音“CHSPinYinConv.msi”、简体繁体互转“CHTCHSConv.msi”等等。。

在这里我们用到的是“CHSPinYinConv.msi”、双击安装成功后、打开Visual Studio、新建一个WinForm项目、窗体布局如上图所示、

首先:添加刚刚安装的语言包引用:

“D:\Program Files (x86)\Microsoft Visual Studio International Pack\Simplified Chinese Pin-Yin Conversion Library\ChnCharInfo.dll”

默认是C盘、在这里我安装在D盘了,然后添加using引用:

 1 using Microsoft.International.Converters.PinYinConverter;//导入拼音相关 

创建获取拼音的方法:

 1 /// <summary> 
 2 /// 汉字转化为拼音
 3 /// </summary> 
 4 /// <param name="str">汉字</param> 
 5 /// <returns>全拼</returns> 
 6 public static string GetPinyin(string str)
 7 {
 8     string r = string.Empty;
 9     foreach (char obj in str)
10     {
11         try
12         {
13             ChineseChar chineseChar = new ChineseChar(obj);
14             string t = chineseChar.Pinyins[0].ToString();
15             r += t.Substring(0, t.Length - 1);
16         }
17         catch
18         {
19             r += obj.ToString();
20         }
21     }
22     return r;
23 }

创建获取汉字拼音首字母的方法:

 1 /// <summary> 
 2 /// 汉字转化为拼音首字母
 3 /// </summary> 
 4 /// <param name="str">汉字</param> 
 5 /// <returns>首字母</returns> 
 6 public static string GetFirstPinyin(string str)
 7 {
 8     string r = string.Empty;
 9     foreach (char obj in str)
10     {
11         try
12         {
13             ChineseChar chineseChar = new ChineseChar(obj);
14             string t = chineseChar.Pinyins[0].ToString();
15             r += t.Substring(0, 1);
16         }
17         catch
18         {
19             r += obj.ToString();
20         }
21     }
22     return r;
23 }

然后在“转拼音”按钮的点击事件中调用上述方法:

1 // 汉字转拼音
2 private void btn_One_Click(object sender, EventArgs e)
3 {
4     string source = this.txt_ChineseCharacter_One.Text.Trim();  // 得到输入的源字符
5     string result = GetPinyin(source);  // 调用方法,获取拼音
6     this.txt_Pinyin_One.Text = result;
7 }

在“转首字母”按钮点击事件中调用上述方法:

1 // 转首字母
2 private void btn_Two_Click(object sender, EventArgs e)
3 {
4     string source = this.txt_ChineseCharacter_One.Text.Trim();  // 得到输入的源字符
5     string result = GetFirstPinyin(source);  // 调用方法,获取拼音
6     this.txt_Pinyin_One.Text = result;
7 }
 1 // 汉字转拼音
 2 private void btn_One_Click(object sender, EventArgs e)
 3 {
 4     string source = this.txt_ChineseCharacter_One.Text.Trim();  // 得到输入的源字符
 5     string result = string.Empty;   // 转拼音的结果
 6     string temp = string.Empty; // 下面foreach用到的临时变量
 7     foreach (char item in source)   // 遍历每个源字符
 8     {
 9         temp = GetPinyin(item.ToString());  // 将每个字符转拼音
10         // 处理:获取首字母大写、其余字母小写
11         result += (String.Format("{0}{1} ", temp.Substring(0, 1).ToUpper(), temp.Substring(1).ToLower()));
12     }
13     //string result = GetPinyin(source);  // 调用方法,获取拼音
14     this.txt_Pinyin_One.Text = result;
15 }

转载于:https://www.cnblogs.com/a-dou/articles/5047357.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值