[这种方式对多音字的效果不怎么理想

时间:2022-06-21 08:03:51

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

本文刚颁布时,只写了一个实现方法,使用的是微软的语言包,但是对多音字的效果不怎么抱负,甚至个别字会呈现很诡异的错误,因此,此刻扩展另一个要领,手动实现。

方法一、使用微软语言包

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

[这种方法对多音字的效果不怎么抱负,但是,这个要领对照简单,直接导入包就可以了,因此,对付那些只需要个别语句进行措置惩罚惩罚的或者不注重多音字的,可以使用这种方法,终究简便嘛。]

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

[这种方式对多音字的效果不怎么理想


[这种方式对多音字的效果不怎么理想

首先,去微软官网下载Microsoft Visual Studio International Pack语言包,下载地点分袂如下:

下载后分袂是“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;//导入拼音相关

创建获取拼音的要领:


代码如下:


/// <summary>

/// 汉字转化为拼音

/// </summary>

/// <param name=”str”>汉字</param>

/// <returns>全拼</returns>

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;

}

创建获取汉字拼音首字母的要领:


代码如下:


/// <summary>

/// 汉字转化为拼音首字母

/// </summary>

/// <param name=”str”>汉字</param>

/// <returns>首字母</returns>

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”的效果啊、这是因为我在获取拼音的时候简单的措置惩罚惩罚了一下:


代码如下: