当前位置:  编程技术>.net/c#/asp.net

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

    来源: 互联网  发布时间:2014-08-25

    本文导语:  前不久看到有的朋友实现对商品名称拼音的录入,发现他的实现方式是手动输入的,—_—#、同志们,福利来了! 微软为了开发者实现国际化语言的互转,提供了Microsoft Visual Studio International Pack,这个扩展包里面有中文、日文...

前不久看到有的朋友实现对商品名称拼音的录入,发现他的实现方式是手动输入的,—_—#、同志们,福利来了!

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

在这里示例讲的是输入汉字,获取其拼音,获取拼音和获取拼音首字母实现效果分别如下:

首先,去微软官网下载Microsoft Visual Studio International Pack语言包,下载地址分别如下:
Microsoft Visual Studio International Pack 1.0 SR1

Microsoft Visual Studio International Feature Pack 2.0

下载后分别是“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 PackSimplified Chinese Pin-Yin Conversion LibraryChnCharInfo.dll”

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

代码如下:

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

创建获取拼音的方法:
代码如下:

///
/// 汉字转化为拼音
///
/// 汉字
/// 全拼
public static string GetPinyin(string str)
{
    string r = string.Empty;
    foreach (char obj in str)
    {
        try
        {
            ChineseChar chineseChar = new ChineseChar(obj);
            string t = chineseChar.Pinyins[0].ToString();
            r += t.Substring(0, t.Length - 1);
        }
        catch
        {
            r += obj.ToString();
        }
    }
    return r;
}

创建获取汉字拼音首字母的方法:
代码如下:

///
/// 汉字转化为拼音首字母
///
/// 汉字
/// 首字母
public static string GetFirstPinyin(string str)
{
    string r = string.Empty;
    foreach (char obj in str)
    {
        try
        {
            ChineseChar chineseChar = new ChineseChar(obj);
            string t = chineseChar.Pinyins[0].ToString();
            r += t.Substring(0, 1);
        }
        catch
        {
            r += obj.ToString();
        }
    }
    return r;
}

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

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

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

// 转首字母
private void btn_Two_Click(object sender, EventArgs e)
{
    string source = this.txt_ChineseCharacter_One.Text.Trim();  // 得到输入的源字符
    string result = GetFirstPinyin(source);  // 调用方法,获取拼音
    this.txt_Pinyin_One.Text = result;
}

到此,已经完成了80%,运行程序,你会发现,当点击“转拼音”的时候,结果是这样子的:

并不是我开始说的那种“Gu Ying”的效果啊、这是因为我在获取拼音的时候简单的处理了一下:

代码如下:

// 汉字转拼音
private void btn_One_Click(object sender, EventArgs e)
{
    string source = this.txt_ChineseCharacter_One.Text.Trim();  // 得到输入的源字符

    string result = string.Empty;   // 转拼音的结果
    string temp = string.Empty; // 下面foreach用到的临时变量
    foreach (char item in source)   // 遍历每个源字符
    {
        temp = GetPinyin(item.ToString());  // 将每个字符转拼音
        // 处理:获取首字母大写、其余字母小写
        result += (String.Format("{0}{1} ", temp.Substring(0, 1).ToUpper(), temp.Substring(1).ToLower()));
    }

    //string result = GetPinyin(source);  // 调用方法,获取拼音
    this.txt_Pinyin_One.Text = result;
}


OK、到此、这个功能已经实现完成了,还有其余的语言包功能,和此类似,大家可以百度“Microsoft Visual Studio International Pack使用”、各种语言之间的互转及功能示例就出来了。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • asp.net获取用户ip地址公共类
  • asp.net 获取目录中图片的代码
  • asp.net获取url地址的方法
  • ASP.NET使用Subtract方法获取两个日期之间的天数
  • ASP.NET如何获取两个日期之间的天数
  • asp.net 获取ashx中数据的代码
  • asp.net获取网站目录物理路径
  • asp.net获取网站目录物理路径示例
  • Asp.net获取浏览器信息的简单代码
  • asp.net 获取存储过程返回值的方法
  • asp.net获取网站绝对路径示例
  • asp.net使用jQuery获取RadioButtonList成员选中内容和值示例
  • asp.net 动态获取Excel表名(第一个表)的代码
  • asp.net中js+jquery添加下拉框值和后台获取示例
  • asp.net 获取IP地址的可靠方法
  • asp.net获取pc电脑与平板物理地址
  • asp.net获取客户端参数与操作系统信息
  • asp.net获取网站目录物理路径示例 iis7站长之家
  • asp.net获取HTML表单File中的路径的方法
  • asp.net 获取URL的可靠方法
  • ASP.NET之 Ajax相关知识介绍及组件图
  • 我想了解一些关于Java怎样与Asp或Asp.net结合方面在未来发展方向的问题?
  • c#/ASP.NET操作cookie(读写)代码示例
  • asp.net UrlEncode对应asp urlencode的处理方法
  • asp.net实例 定义和使用asp:AccessDataSource
  • win2008 r2 服务器环境配置(FTP/ASP/ASP.Net/PHP)
  • asp与asp.net的session共享
  • 如何在unix下发布asp?
  • 怎么让Apache支持Asp?
  • ??谁能把ASP代码改为JSP的
  • Linux平台下哪种方法实现ASP好?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3