/// <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);
        }
Example #3
0
 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());
 }