有时候项目中会根据用户姓名的拼音检索数据,微软专门提供了一个组件安装包来处理非英文的特殊语言,名称为
Microsoft Visual Studio International Pack
下载这个安装包,然后安装简体中文的组件
默认的安装路径为:C:Program Files (x86)Microsoft Visual Studio International PackSimplified Chinese Pin-Yin Conversion Library
要在项目中使用这种汉字处理方法需要添加该目录下的dll文件:ChnCharInfo.dll
以下是这个简体中文包提供的方法
测试代码:
using Microsoft.International.Converters.PinYinConverter; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 获取汉字拼音 { class Program { static void Main(string[] args) { // 1.获取指定汉字的拼音 ChineseChar cc = new ChineseChar('乐'); // 因为汉字有可能是多音字,所以循环遍历输出所有的拼音 foreach (var str in cc.Pinyins) { // 输出结果为:LE4,YUE4。(注意:拼音后面的数字代表声调) Console.WriteLine(str); } // 2.获取这个汉字字符。 Console.WriteLine(cc.ChineseCharacter); // 输出结果:乐 // 3.获取这个字符的笔画数。 Console.WriteLine(cc.StrokeNumber); // 输出结果:5 // 4.获取这个字符的拼音个数。 Console.WriteLine(cc.PinyinCount); // 输出结果:2 // 5.将给出的字符和实例字符的笔画数进行比较。输出结果为“乐” 字的笔画数减去要比较的汉字笔画数 Console.WriteLine(cc.CompareStrokeNumber('中')); // “乐”字的笔画数比“中”字的笔画数多1,输出结果:1 Console.WriteLine(cc.CompareStrokeNumber('主')); // “乐”字的笔画数和“主”字的笔画数一样多,输出结果:0 Console.WriteLine(cc.CompareStrokeNumber('国')); // “国”字的笔画数比“乐”字的笔画数多3,输出结果:-3 // 6.检索具有指定笔画数的字符个数。 Console.WriteLine(ChineseChar.GetCharCount(1)); // 7.检索具有指定笔画数的所有字符串。 char[] cSameStrokeNum = ChineseChar.GetChars(1); foreach (var c in cSameStrokeNum) { Console.WriteLine(c); } // 8.获取给定拼音的所有同音字。 char[] cSamePinyin = ChineseChar.GetChars("shao4"); // PS:必须指定拼音的声调 foreach (var c in cSamePinyin) { Console.WriteLine(c); } // 9.还有很多其他方法 Console.ReadKey(); } } }