zoukankan      html  css  js  c++  java
  • 将汉字转为拼音

    ------------------------------------------------------------------------------

    第一种方法: 下面是封装的一个方法。将汉字转为拼音的方法,但是有些字转不了

         /// <summary>
            /// 中文转拼音
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public  String ConvertToPinYin(string str)
            {
                string strPinYin = "";
                int i = 0;
                Hashtable htData = Paramer.Json2Hashtable(DataProcessing.strPinYinDict);   
                foreach (char item in str.ToCharArray())
                {         
                    if (i == 0 && htData.ContainsKey(item.ToString()))
                    {          
                        strPinYin += htData[item.ToString()].ToString().ToUpper();
                        i++;
                    }
                    else
                    {
                        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());
                            strPinYin += 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
                        {
                            strPinYin += item.ToString();
                        }
                    }
                }    
                return strPinYin;
            }

    必须 引用了using Microsoft.International.Converters.PinYinConverter;命名空间,  同时引用里面也添加了ChnCharInfo.dll

    ----第二种方法:Pinyin-的插件比上面那种方法好用------------------------------------------------------------------------

     string medicines = "来自中国的南方";
               
     //转换为拼音
    string d = Pinyin.GetPinyin(medicines);
     Console.WriteLine("UTF8句子拼音:"+d);
    
     Encoding gb2312 = Encoding.GetEncoding("GB2312");
               
     //转换为拼音的简码 
     string s = Pinyin.ConvertEncoding(medicines, Encoding.UTF8, gb2312);
     string d1 = Pinyin.GetInitials(s, gb2312);
     Console.WriteLine("GB2312拼音简码:"+d1);

    需要引用一个插件: NPinyin.dll

  • 相关阅读:
    关于格林尼治时间(GMT)和DateTime相互转换的分享
    Mybatis多表操作
    Mybatis动态SQL
    Mybatis连接池及事务
    Mybatis基本使用
    Mybatis基本入门搭建
    面试刷题29:mysql事务隔离实现原理?
    面试刷题28:如何写出安全的java代码?
    面试刷题27:程序员如何防护java界的新冠肺炎?
    面试刷题26:新冠攻击人类?什么攻击java平台?
  • 原文地址:https://www.cnblogs.com/cl1006/p/6392624.html
Copyright © 2011-2022 走看看