項目開發中用戶的登錄名是管理員在后台輸入漢字姓名后自動生成的拼音。例如輸入:張三,則登錄名自動生成ZHANGSAN。
我在網上查閱了很多方法:
如:http://blog.csdn.net/nengzhong/article/details/4210039 等一些方法,但是在轉換過程中,有些中文它是無法識別的。
於是,又東奔西走,終於在為微軟的官方找到了最佳解決方案:
微軟提供了一個Microsoft Visual Studio International Pack 類庫軟件包,vsintlpack1.zip
其中有一個類庫:Simplified Chinese Pin-Yin Conversion Library 支持獲取簡體中文字符的常用屬性
具體操作:
1、vsintlpack1.zip 下載地址為:
2、下載vsintlpack1.zip后,解壓安裝其中的CHSPinYinConv.msi,如安裝到C:\Program Files\Microsoft Visual Studio International Pack\Simplified Chinese Pin-Yin Conversion Library ,可以看到以下文件。
3、在項目中添加引用,在步驟2安裝目錄下添加引用ChnCharInfo.dll。
引用成功后如圖:
4 、測試方法如下:
private string ConvertToPinYin(string str) { string PYstr = ""; foreach (char item in str.ToCharArray()) { if (Microsoft.International.Converters.PinYinConverter.ChineseChar.IsValidChar(item)) { Microsoft.International.Converters.PinYinConverter.ChineseChar cc = new Microsoft.International.Converters.PinYinConverter.ChineseChar(item); //PYstr += string.Join("", cc.Pinyins.ToArray()); PYstr += cc.Pinyins[0].Substring(0, cc.Pinyins[0].Length - 1); //PYstr += cc.Pinyins[0].Substring(0, cc.Pinyins[0].Length - 1).Substring(0, 1).ToLower(); } else { PYstr += item.ToString(); } } return PYstr; }