Example #1
0
        /// <summary>
        /// 中文转拼音
        /// </summary>
        /// <param name="str"></param>
        /// <param name="isall">转换所有/转换首字母</param>
        /// <returns></returns>
        public static string ConvertToPinYin(string str, bool isall = true)
        {
            string pYstr = string.Empty;

            foreach (char item in str)
            {
                string temp;
                if (Microsoft.International.Converters.PinYinConverter.ChineseChar.IsValidChar(item))
                {
                    var cc = new Microsoft.International.Converters.PinYinConverter.ChineseChar(item);

                    temp = cc.Pinyins[0].Substring(0, cc.Pinyins[0].Length - 1);
                }
                else
                {
                    temp = item.ToString(CultureInfo.InvariantCulture);
                }
                if (isall)
                {
                    pYstr += temp;
                }
                else
                {
                    pYstr += temp.Substring(0, 1);
                }
            }
            return(pYstr.ToLower());
        }
Example #2
0
        /// <summary>
        /// 转汉字为拼音
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string ConvertToPinYin(string str)
        {
            if (string.IsNullOrEmpty(str))
            {
                return(string.Empty);
            }
            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);
        }
        //private static int m_bufferCount = 1000;
        ///// <summary>
        ///// Buffer
        ///// </summary>
        //public static int BufferCount
        //{
        //    get { return m_bufferCount; }
        //    set { m_bufferCount = value; }
        //}

        /// <summary>
        /// 汉字转拼音
        /// </summary>
        /// <param name="hanzi"></param>
        /// <returns></returns>
        private static IList <string> ConvertToPinYinInternal(char hanzi)
        {
            if (s_buffers.ContainsKey(hanzi))
            {
                return(s_buffers[hanzi]);
            }

            List <string> ret = new List <string>();

            Microsoft.International.Converters.PinYinConverter.ChineseChar chineseChar = new Microsoft.International.Converters.PinYinConverter.ChineseChar(hanzi);
            for (int i = 0; i < chineseChar.PinyinCount; ++i)
            {
                ret.Add(chineseChar.Pinyins[i]);
            }
            s_buffers[hanzi] = ret;
            return(ret);
        }
Example #4
0
        /// <summary>
        /// 获取汉字的拼音
        /// </summary>
        /// <param name="sinogram"></param>
        /// <returns></returns>
        private string GetPinYin(char sinogram)
        {
            Microsoft.International.Converters.PinYinConverter.ChineseChar cc = new Microsoft.International.Converters.PinYinConverter.ChineseChar(sinogram);
            string pinyin = cc.Pinyins.FirstOrDefault();

            if (string.IsNullOrWhiteSpace(pinyin))
            {
                return("");
            }
            string last = pinyin.Substring(pinyin.Length - 1);

            if (last.Equals("1") || last.Equals("2") || last.Equals("3") || last.Equals("4"))
            {
                pinyin = pinyin.Substring(0, pinyin.Length - 1);
            }

            return(pinyin);
        }
Example #5
0
        /// <summary>
        /// 生成注记码,chncharinfo.dll
        /// </summary>
        /// <param name="Source"></param>
        /// <returns></returns>
        public static string CreatePY(string Source)
        {
            string str = string.Empty;

            foreach (char item in Source.ToCharArray())
            {
                if (Microsoft.International.Converters.PinYinConverter.ChineseChar.IsValidChar(item))
                {
                    Microsoft.International.Converters.PinYinConverter.ChineseChar cc = new Microsoft.International.Converters.PinYinConverter.ChineseChar(item);

                    str += cc.Pinyins[0].First();
                }
                else
                {
                    str += item.ToString();
                }
            }
            return(str);
        }
        private (string Pinyin, string PinyinSimple) ConvertToPinYin(string chineseStr)
        {
            var pinYin       = "";
            var pinYinSimple = "";

            foreach (var str in chineseStr)
            {
                if (Microsoft.International.Converters.PinYinConverter.ChineseChar.IsValidChar(str))
                {
                    var cc         = new Microsoft.International.Converters.PinYinConverter.ChineseChar(str);
                    var pinYinFull = cc.Pinyins[0];
                    pinYin       += pinYinFull.Substring(0, pinYinFull.Length - 1);
                    pinYinSimple += pinYinFull.Substring(0, 1);
                }
                else
                {
                    pinYin       += str.ToString();
                    pinYinSimple += str.ToString().Substring(0, 1);
                }
            }
            return(pinYin, pinYinSimple);
        }
Example #7
0
        /// <summary>
        /// 转汉字为拼音
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string ConvertToPinYin(string str)
        {
            if (string.IsNullOrEmpty(str))
            {
                return string.Empty;
            }
            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;
        }
        //private static int m_bufferCount = 1000;
        ///// <summary>
        ///// Buffer
        ///// </summary>
        //public static int BufferCount
        //{
        //    get { return m_bufferCount; }
        //    set { m_bufferCount = value; }
        //}
        /// <summary>
        /// ����תƴ��
        /// </summary>
        /// <param name="hanzi"></param>
        /// <returns></returns>
        private static IList<string> ConvertToPinYinInternal(char hanzi)
        {
            if (s_buffers.ContainsKey(hanzi))
                return s_buffers[hanzi];

            List<string> ret = new List<string>();
            Microsoft.International.Converters.PinYinConverter.ChineseChar chineseChar = new Microsoft.International.Converters.PinYinConverter.ChineseChar(hanzi);
            for (int i = 0; i < chineseChar.PinyinCount; ++i)
            {
                ret.Add(chineseChar.Pinyins[i]);
            }
            s_buffers[hanzi] = ret;
            return ret;
        }