下载完毕后,进行解压,里面有7个msi文件,其中:CHSPinYinConv.msi就是汉字拼音相关的,CHTCHSConv.msi是进行简体与繁体进行相互转换的,值安装这2个msi即可。安装完毕后,需要在VS里添加引用,分别引用:C:\Program Files\Microsoft Visual Studio International Pack\Simplified Chinese Pin-Yin Conversion Library下和C:\Program Files\Microsoft Visual Studio International Pack\Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool下的dll即可使用。

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

调用这个就实现了标题的所有功能,代码如下(我提供了下注释,本来一般不写注释的):

using System;
using System.Windows.Forms;
using Microsoft.International.Converters.PinYinConverter;
using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;
using System.Collections.ObjectModel;

namespace ChineseWordDeal
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

/// <summary>
        ///依次获取汉字笔画, http://hi.baidu.com/jiang_yy_jiang/ 2010-5-12 22:14
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            textBox3.Clear();
            int L = GetChars().Length;
            string Res = "";
            for (int i = 0; i < L; i++)
            {
                char C = GetChars()[i];
                //判断是不是有效的汉字
                if (ChineseChar.IsValidChar(C))
                {
                    //笔画数依次输出
                    Res += ChineseChar.GetStrokeNumber(C).ToString() + ",";
                }
                else
                {
                    //非有效的汉字则输出?号
                    Res += ("?,");
                }
            }
            Res = Res.Substring(0, Res.Length - 1);
            textBox3.Text = Res;
        }

//获取汉字对应的拼音,不是读音 
        private void button1_Click(object sender, EventArgs e)
        {
            textBox2.Clear();
            int L = GetChars().Length;
            string Res = "";
            for (int i = 0; i < L; i++)
            {
                char C = GetChars()[i];

if (ChineseChar.IsValidChar(C))
                {
                    ChineseChar CC = new ChineseChar(C);
                    //返回单个汉字拼音的所有集合,包括不同读音
                    ReadOnlyCollection<string> roc = CC.Pinyins;
                    //只获取第一个拼音
                    string Py = CC.Pinyins[0];
                    //去掉后面的数字,只截取拼音
                    Res += Py.Substring(0, Py.Length - 1) + ",";
                }
                //不是汉字返回问号
                else { Res += "?,"; }
            }
            //去掉最后一个逗号
            Res = Res.Substring(0, Res.Length - 1);
            textBox2.Text = Res;
        }
        //计算有效的汉字数量
        private void textBox1_TextChanged(object sender, EventArgs e)
        {

label4.Text = "";
            int L = GetChars().Length;
            int k = 0;
            for (int i = 0; i < L; i++)
            {
                char C = GetChars()[i];

if (ChineseChar.IsValidChar(C))
                {
                    k++;
                }
            }
            label4.Text = "当前汉字个数:" + k.ToString();

}
        //将文本字符串转化为字符数组输出
        public char[] GetChars()
        {
            char[] Cs = textBox1.Text.Trim().ToCharArray();
            return Cs;
        }

//获取汉字拼音列表,所有的 。处理同汉字拼音
        private void button3_Click(object sender, EventArgs e)
        {
            richTextBox1.Clear();
            int L = GetChars().Length;
            string Res = "";
            for (int i = 0; i < L; i++)
            {
                char C = GetChars()[i];

if (ChineseChar.IsValidChar(C))
                {
                    ChineseChar CC = new ChineseChar(C);
                    ReadOnlyCollection<string> roc = CC.Pinyins;
                    string R0 = "";
                    foreach (string s in roc)
                    {
                        R0 += (s + " ");
                    }
                    R0 = R0.Substring(0, R0.Length - 1) + "\n";
                    Res += C + ":" + R0;

}
                else { Res += "?" + "\n"; }
            }
            Res = Res.Substring(0, Res.Length - 1);
            richTextBox1.Text = Res;
        }

//获取汉字对应的繁体
        private void button4_Click(object sender, EventArgs e)
        {
            textBox4.Clear();
            String simText = textBox1.Text.Trim();
            String traText = ChineseConverter.Convert(simText, ChineseConversionDirection.SimplifiedToTraditional);
            textBox4.Text = traText;

}
    }
}

效果如下:

不过:有几个方面主要注意:

  1. 不清楚这个工具参照的是哪个汉字标准,SDK上也没有看到说明,“孟”这个字在字典中并不是多音字;
  2. 拼音后面的1,2,3,4,5猜测应当是声调标记:阴平,阳平,上声,去声,轻声。具体是否是有待查证;

下面是Microsoft.International.Converters.PinYinConverter.ChineseChar类的成员:

封装了简体中文的读音和笔画等基本信息。

成员类型
成员
描述

ChineseCharNew(Char)

ChineseChar类的构造函数。

ChineseCharacter

获取这个汉字字符。

CompareStrokeNumber(Char)

将给出的字符和实例字符的笔画数进行比较。

静态成员
GetCharCount(Int16)

检索具有指定笔画数的字符个数。

静态成员
GetChars(String)

获取给定拼音的所有同音字。

静态成员
GetChars(Int16)

检索具有指定笔画数的所有字符串。

静态成员
GetHomophoneCount(String)

检索具有指定拼音的字符数。

静态成员
GetStrokeNumber(Char)

检索指定字符的笔画数。

HasSound(String)

识别字符是否有指定的读音。

IsHomophone(Char)

识别给出的字符是否是实例字符的同音字。

静态成员
IsHomophone(Char, Char)

识别给出的两个字符是否是同音字。

IsPolyphone

获取这个字符是否是多音字。

静态成员
IsValidChar(Char)

识别给出的字符串是否是一个有效的汉字字符。

静态成员
IsValidPinyin(String)

识别给出的拼音是否是一个有效的拼音字符串。

静态成员
IsValidStrokeNumber(Int16)

识别给出的笔画数是否是一个有效的笔画数。

PinyinCount

获取这个字符的拼音个数。

Pinyins

获取这个字符的拼音。

StrokeNumber

获取这个字符的笔画数。

其他信息请参与随机安装的chm帮助文件。

下载完毕后,进行解压,里面有7个msi文件,其中:CHSPinYinConv.msi就是汉字拼音相关的,CHTCHSConv.msi是进行简体与繁体进行相互转换的,值安装这2个msi即可。安装完毕后,需要在VS里添加引用,分别引用:C:\Program Files\Microsoft Visual Studio International Pack\Simplified Chinese Pin-Yin Conversion Library下和C:\Program Files\Microsoft Visual Studio International Pack\Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool下的dll即可使用。

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

调用这个就实现了标题的所有功能,代码如下(我提供了下注释,本来一般不写注释的):

using System;
using System.Windows.Forms;
using Microsoft.International.Converters.PinYinConverter;
using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;
using System.Collections.ObjectModel;

namespace ChineseWordDeal
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

/// <summary>
        ///依次获取汉字笔画, http://hi.baidu.com/jiang_yy_jiang/ 2010-5-12 22:14
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            textBox3.Clear();
            int L = GetChars().Length;
            string Res = "";
            for (int i = 0; i < L; i++)
            {
                char C = GetChars()[i];
                //判断是不是有效的汉字
                if (ChineseChar.IsValidChar(C))
                {
                    //笔画数依次输出
                    Res += ChineseChar.GetStrokeNumber(C).ToString() + ",";
                }
                else
                {
                    //非有效的汉字则输出?号
                    Res += ("?,");
                }
            }
            Res = Res.Substring(0, Res.Length - 1);
            textBox3.Text = Res;
        }

//获取汉字对应的拼音,不是读音 
        private void button1_Click(object sender, EventArgs e)
        {
            textBox2.Clear();
            int L = GetChars().Length;
            string Res = "";
            for (int i = 0; i < L; i++)
            {
                char C = GetChars()[i];

if (ChineseChar.IsValidChar(C))
                {
                    ChineseChar CC = new ChineseChar(C);
                    //返回单个汉字拼音的所有集合,包括不同读音
                    ReadOnlyCollection<string> roc = CC.Pinyins;
                    //只获取第一个拼音
                    string Py = CC.Pinyins[0];
                    //去掉后面的数字,只截取拼音
                    Res += Py.Substring(0, Py.Length - 1) + ",";
                }
                //不是汉字返回问号
                else { Res += "?,"; }
            }
            //去掉最后一个逗号
            Res = Res.Substring(0, Res.Length - 1);
            textBox2.Text = Res;
        }
        //计算有效的汉字数量
        private void textBox1_TextChanged(object sender, EventArgs e)
        {

label4.Text = "";
            int L = GetChars().Length;
            int k = 0;
            for (int i = 0; i < L; i++)
            {
                char C = GetChars()[i];

if (ChineseChar.IsValidChar(C))
                {
                    k++;
                }
            }
            label4.Text = "当前汉字个数:" + k.ToString();

}
        //将文本字符串转化为字符数组输出
        public char[] GetChars()
        {
            char[] Cs = textBox1.Text.Trim().ToCharArray();
            return Cs;
        }

//获取汉字拼音列表,所有的 。处理同汉字拼音
        private void button3_Click(object sender, EventArgs e)
        {
            richTextBox1.Clear();
            int L = GetChars().Length;
            string Res = "";
            for (int i = 0; i < L; i++)
            {
                char C = GetChars()[i];

if (ChineseChar.IsValidChar(C))
                {
                    ChineseChar CC = new ChineseChar(C);
                    ReadOnlyCollection<string> roc = CC.Pinyins;
                    string R0 = "";
                    foreach (string s in roc)
                    {
                        R0 += (s + " ");
                    }
                    R0 = R0.Substring(0, R0.Length - 1) + "\n";
                    Res += C + ":" + R0;

}
                else { Res += "?" + "\n"; }
            }
            Res = Res.Substring(0, Res.Length - 1);
            richTextBox1.Text = Res;
        }

//获取汉字对应的繁体
        private void button4_Click(object sender, EventArgs e)
        {
            textBox4.Clear();
            String simText = textBox1.Text.Trim();
            String traText = ChineseConverter.Convert(simText, ChineseConversionDirection.SimplifiedToTraditional);
            textBox4.Text = traText;

}
    }
}

效果如下:

不过:有几个方面主要注意:

  1. 不清楚这个工具参照的是哪个汉字标准,SDK上也没有看到说明,“孟”这个字在字典中并不是多音字;
  2. 拼音后面的1,2,3,4,5猜测应当是声调标记:阴平,阳平,上声,去声,轻声。具体是否是有待查证;

下面是Microsoft.International.Converters.PinYinConverter.ChineseChar类的成员:

封装了简体中文的读音和笔画等基本信息。

成员类型
成员
描述

ChineseCharNew(Char)

ChineseChar类的构造函数。

ChineseCharacter

获取这个汉字字符。

CompareStrokeNumber(Char)

将给出的字符和实例字符的笔画数进行比较。

静态成员
GetCharCount(Int16)

检索具有指定笔画数的字符个数。

静态成员
GetChars(String)

获取给定拼音的所有同音字。

静态成员
GetChars(Int16)

检索具有指定笔画数的所有字符串。

静态成员
GetHomophoneCount(String)

检索具有指定拼音的字符数。

静态成员
GetStrokeNumber(Char)

检索指定字符的笔画数。

HasSound(String)

识别字符是否有指定的读音。

IsHomophone(Char)

识别给出的字符是否是实例字符的同音字。

静态成员
IsHomophone(Char, Char)

识别给出的两个字符是否是同音字。

IsPolyphone

获取这个字符是否是多音字。

静态成员
IsValidChar(Char)

识别给出的字符串是否是一个有效的汉字字符。

静态成员
IsValidPinyin(String)

识别给出的拼音是否是一个有效的拼音字符串。

静态成员
IsValidStrokeNumber(Int16)

识别给出的笔画数是否是一个有效的笔画数。

PinyinCount

获取这个字符的拼音个数。

Pinyins

获取这个字符的拼音。

StrokeNumber

获取这个字符的笔画数。

其他信息请参与随机安装的chm帮助文件。

C# 汉字转拼音 拼音转汉字 简体繁体互转相关推荐

  1. 简体繁体互转 API 接口

    简体繁体互转 API 接口 高精度高性能转换,超高的转换性能 / 支持两种繁体字. 1. 产品功能 毫秒级转换性能: 极速解析与返回: 支持两种繁体格式,适用多种转换场景: 全接口支持 HTTPS(T ...

  2. 在线简体繁体互转工具

    详情请参考:在线简体繁体互转工具

  3. 简体繁体互译代码段:

    简体繁体互译coding: <!DOCTYPE html> <html> <head><meta charset="utf-8"> ...

  4. C# 同间字查询 (汉字转拼音 拼音转汉字 简体繁体互转 )

    之前一直想弄个汉字转化工具,一直没能实现,今天发现原来早就可以实现了,先给各位推荐下这个库: 这两个提供这是微软亚洲汉字开发中心开发的,下面是说明: 2009年3月31日,微软发布了 Microsof ...

  5. C# 同间字查询 (汉字转拼音 拼音转汉字 简体繁体互转 )

    之前一直想弄个汉字转化工具,一直没能实现,今天发现原来早就可以实现了,先给各位推荐下这个库: 这两个提供这是微软亚洲汉字开发中心开发的,下面是说明: 2009年3月31日,微软发布了 Microsof ...

  6. 无组件的ASP汉字简体繁体互转换函数

    我们开发ASP的程序员,经常遇到客户有开发繁体网站的需要,但是建设两个网站一个是麻烦,第二个是客户不愿意更新不便,所以要求能自动GB2312和BIG5转化的ASP函数,如果您需要请联系我.     简 ...

  7. 简体-繁体互转换的一个JS

    代码 document.write(" <a name=\"StranLink\" style=\"color:red\">繁體中文< ...

  8. 汉字转拼音 - 输入汉字获取其拼音

    转载自: http://www.cnblogs.com/LonelyShadow/p/3543798.html 前不久看到有的朋友实现对商品名称拼音的录入,发现他的实现方式是手动输入的,-_-#.同志 ...

  9. .net 汉字转拼音 - 输入汉字获取其拼音

    首先,去微软官网下载Microsoft Visual Studio International Pack语言包,下载地址分别如下: Microsoft Visual Studio Internatio ...

最新文章

  1. VUE 框架添加全局公共方法 , 保留小数点后两位
  2. httpclient通过POST来上传文件,而不是通过流的形式,并在服务端进行解析(通过htt......
  3. 【数据结构算法】快排/归并/堆排序 c++
  4. 【Python】画图海龟
  5. sql server 加密_SQL Server机密–第II部分– SQL Server加密功能
  6. linux jmeter 内存,怎么在Linux下改变JMeter内存
  7. Unity实现导航到鼠标点击位置并显示路线
  8. 视频教程-Go语言区块链开发入门视频教程-区块链
  9. 生存预测模型样本量计算(完善中)
  10. 数学 导数表 求导公式求导法则
  11. python宿舍管理系统!
  12. 自定义 UINavigationController
  13. 此计算机未运行正版windows,最近一开机就有以下之警告:此Windows副本未通过正版Windows验证。...
  14. Centos7下turn off cpu throttling
  15. 红黑树 原理和算法详细介绍(Java)
  16. codeforces 博弈 Arena of Greed
  17. 【MATLAB】高塔观测数据通量梯度法计算感热及潜热通量
  18. vue 梯形百分比占比图
  19. 模拟CMOS集成电路设计入门学习(9)
  20. windows安全警报怎么关闭_鄂州人注意!本周五上午,全市将进行防空警报鸣放...

热门文章

  1. 八字易经算法之用JAVA实现完整排盘系统_八字易經演算法之用JAVA實現完整排盤系統 | 學步園...
  2. 国产网页在线编辑器kindeditor的使用
  3. 5.Redis实战—秒杀业务
  4. 高级语言与低级语言的区别
  5. 模型量化 pytorch2onnx
  6. tomcat集群session共享
  7. Python量化交易实战:获取股票数据并做分析处理
  8. C语言 neutralize函数,因子中性化
  9. 5分绩点转4分_5分制绩点换算成4分制(5.0绩点计算器在线)
  10. [php fqm说明]以及nginx和apache的一些说明