教你如何将中文转换成全拼

在转换之前,我们先要判断输入的是否为中文,中文字符处于4e00与9fff之间,了解了这个知识之后,我们开始操作

     /// <summary>
        /// 转化事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            int code = 0;
            int chfrom = Convert.ToInt32("4e00",16);
            int chend = Convert.ToInt32("9fff",16);

            //全拼功能
            //this.textBox2.Text = Pinyin.GetPinyin(this.textBox1.Text.ToString());
            //this.textBox2.Text = this.textBox2.Text.Replace(" ", "");
            for (int i = 0; i < this.textBox1.Text.Length; i++)
            {
                this.textBox2.Text += this.textBox1.Text[i].ToString() + ": " + Pinyin.GetPinyin(this.textBox1.Text[i].ToString());
            }
            Encoding gb2312 = Encoding.GetEncoding("GB2312");
            for (int i = 0; i < this.textBox1.Text.Length; i++)
            {
                string s = Pinyin.ConvertEncoding(this.textBox1.Text[i].ToString(), Encoding.UTF8, gb2312);
                this.textBox2.Text += this.textBox1.Text[i].ToString() + Pinyin.GetInitials(s, gb2312);
            }
            for (int i = 0; i < this.textBox1.Text.Length; i++)
            {
                code = Char.ConvertToUtf32(this.textBox1.Text[i].ToString(), 0);
                if (code >= chfrom && code <= chend)
                    this.textBox2.Text += this.textBox1.Text[i].ToString() + " / 中文";
            }
            

        }

ok,这里的转换已分为多种,难度可以说没有,微软已经大大降低了开发人员的开发难度,有利于开发人员将精力投放于业务逻辑。

原文地址:https://www.cnblogs.com/xufei/p/2943976.html