/// <summary> /// 获取单字字符编码字符集 /// </summary> /// <param name="number"></param> /// <returns></returns> internal static int[] GetCharCodes(PinyinSingle number) { int[] charCodes = new int[] { }; switch (number) { case PinyinSingle.Four: charCodes = CharSetSingle.CharSetFour.CharCodes; break; case PinyinSingle.Five: charCodes = CharSetSingle.CharSetFive.CharCodes; break; case PinyinSingle.Six: charCodes = CharSetSingle.CharSetSix.CharCodes; break; case PinyinSingle.Seven: charCodes = CharSetSingle.CharSetSeven.CharCodes; break; case PinyinSingle.Eight: charCodes = CharSetSingle.CharSetEight.CharCodes; break; case PinyinSingle.Nine: charCodes = CharSetSingle.CharSetNine.CharCodes; break; } return(charCodes); }
/// <summary> /// 获取单字字符拼音字符集 /// </summary> /// <param name="number"></param> /// <returns></returns> internal static string[] GetCharPinyin(PinyinSingle number) { string[] charPinyin = new string[] { }; switch (number) { case PinyinSingle.Four: charPinyin = CharSetSingle.CharSetFour.CharPinyin; break; case PinyinSingle.Five: charPinyin = CharSetSingle.CharSetFive.CharPinyin; break; case PinyinSingle.Six: charPinyin = CharSetSingle.CharSetSix.CharPinyin; break; case PinyinSingle.Seven: charPinyin = CharSetSingle.CharSetSeven.CharPinyin; break; case PinyinSingle.Eight: charPinyin = CharSetSingle.CharSetEight.CharPinyin; break; case PinyinSingle.Nine: charPinyin = CharSetSingle.CharSetNine.CharPinyin; break; } return(charPinyin); }
private string FindPinyin(char word) { if (IsChinese(word)) { string unicode = GetCharUnicode(word); string firstChar = unicode.Substring(0, 1); PinyinSingle number = (PinyinSingle)Enum.Parse(typeof(PinyinSingle), firstChar); int[] charCodes = ChineseCharSet.GetCharCodes(number); if (charCodes.Length > 0) { int hexCode = Convert.ToInt32(unicode, 16); int index = ChineseCharIndex.GetCharIndex(charCodes, hexCode); if (index >= 0) { string[] pinyin = ChineseCharSet.GetCharPinyin(number); if (pinyin.Length > 0) { return(pinyin[index]); } } } } return(word.ToString()); }