繁体转简体

首先去这个地址下载类库:

http://www.microsoft.com/downloads/zh-cn/confirmation.aspx?FamilyID=44cac7f0-633b-477d-aed2-99aee642fc10&DisplayLang=zh-cn

 

转换类库名称


这两个提供这是微软亚洲汉字开发中心开发的。2009年3月31日,微软发布了 Microsoft Visual Studio International Pack 1.0 SR1。Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持。使用该类库提供的类,.NET 开发人员可以更方便的创建支持多文化多语言的软件应用。

说明

Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持。使用该类库提供的类,.NET 开发人员可以更方便的创建支持多文化多语言的软件应用。 该软件包1.0版提供下面七个组件以增强.NET Framework对全球化软件应用开发的支持。

  • East Asia Numeric Formatting Library - 支持将小写的数字字符串格式化成简体中文,繁体中文,日文和韩文的大写数字字符串。
  • Japanese Kana Conversion Library - 支持将日文假名(Kana)转化为另一种日文字符。
  • Japanese Text Alignment Library - 支持日文特有的一种对齐格式。
  • Japanese Yomi Auto-Completion Library - 类库支持感知日文输入法的输入自动完成和一个文本框控件的示例。
  • Korean Auto Complete TextBox Control - 支持韩文输入法的智能感知和输入自动完成的文本框控件。
  • Simplified Chinese Pin-Yin Conversion Library - 支持获取简体中文字符的常用属性比如拼音,多音字,同音字,笔画数。
  • Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool - 支持简繁体中文之间的转换。该组件还包含一个Visual Studio集成开发环境中的插件(Add-in)支持简繁体中文资源文件之间的转换。
下载完毕后,进行解压,里面有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>
        ///依次获取汉字笔画
        /// </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帮助文件。

喀喀喀~~ 终于将汉字该处理的问题今天全解决了~~ OK~~!!收获颇丰~~10/5/12

 

以上内容来自:http://hi.baidu.com/jiang_yy_jiang/blog/item/3a94321994308676dab4bd9f.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
模仿语言包式的简繁换功能插件,轻松实现繁体和简体互换,很方便,只有一个JS文件。Std_StranJF.js文件只支持GB2312码,big52gb.js支持utf-8。   一、将繁简互换JS文件上传至空间:   如果您调用的是,则将繁简互换JS文件(Std_StranJF.Js)上传至网站的js目录中。当然您也可以上传至网站的其他何地方,如根目录下。如果上传在网站根目录下,则要将调用代码改成:   二、页面调用的方法:   在您的网站中请按以下方法添加以下的代码:   1. 在页面中加上以下链接:   繁体中文   这个是每个页面中显示进行简繁换的链接,您可以放在页面顶部,如顶部的导航处。   如果您用的是默认的动易模板,则进入网站后台,依次点击“系统设置”->“自定义标签管理”->“2006海蓝”->“{$MY_动易2006海蓝首页顶}”->点击“修改”链接,在出现的自定义标签内容页面中,找到“{$ShowChannel} {$Rss}{$Wap}”,修改成“{$ShowChannel} |繁体中文|{$Rss}{$Wap}”即可。当然您也可以放在任何您想要放置的地方。   2. 在页面中放以下代码:      这个是每个页面中要调用繁体和简体互换的JS代码,您放在页面底部,如前面。   如果您用的是默认的动易模板,则进入网站后台,依次点击“系统设置”->“自定义标签管理”->“2006海蓝”->“{$MY_动易2006海蓝网页底}”->点击“修改”链接,在出现的自定义标签内容页面中,找到“”,修改成“”即可。当然您也可以放在任何您想要放置的地方。   小提示:您也可以不修改自定义标签,而是通过系统模板批量替换功能来添加以上的代码。但利用修改模板的自定义标签内容更方便。在修改了自定义标签后要记得更新您网站的缓存。若您开启了网站的生成功能,则在添加了代码后要生成全部相关的页面。   三、繁简互换JS文件参数的修改:   您可以进一步修改繁简互换JS文件(Std_StranJF.Js)以达到您想要的效果。请以记事本打开修改Std_StranJF.Js文件:   var Default_isFT = 0 //默认是否繁体,0-简体,1-繁体   var StranIt_Delay = 50 //翻译延时毫秒(设这个的目的是让网页先流畅的显现出来)   同时如果您的网站中有本文件中没有放入的繁体与简体互换的内容,则可以在本文件中进一步添加与扩充,以满足您的应用需求。   小提示:本插件同时可用于论坛等需要进行繁简互换的地方。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值