前不久看到有的朋友实现对商品名称拼音的录入,发现他的实现方式是手动输入的,—_—#、同志们,福利来了!
微软为了开发者实现国际化语言的互转,提供了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 Pack\Simplified Chinese Pin-Yin Conversion Library\ChnCharInfo.dll”
默认是C盘、在这里我安装在D盘了,然后添加using引用:
复制代码 代码如下:
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”的效果啊、这是因为我在获取拼音的时候简单的处理了一下:
复制代码 代码如下:
// 汉字转拼音
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使用”、各种语言之间的互转及功能示例就出来了。
ASP.NET,汉字,拼音
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】
- 林俊吉.2012-将你惜命命【美华】【WAV+CUE】
- 晓雅《分享》DTS-WAV
- 黑鸭子2008-飞歌[首版][WAV+CUE]
- 黄乙玲1989-水泼落地难收回[日本天龙版][WAV+CUE]
- 周深《反深代词》[先听版][FLAC/分轨][310.97MB]
- 姜育恒1984《什么时候·串起又散落》台湾复刻版[WAV+CUE][1G]
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】