汉字转化工具
来源:互联网 发布:网络教育没有按时毕业 编辑:程序博客网 时间:2024/05/17 04:15
之前一直想弄个汉字转化工具,一直没能实现,今天发现原来早就可以实现了,先给各位推荐下这个库chineseconverter.dll and chncharinfo.dll:
2009年3月31日,微软发布了 Microsoft Visual Studio International Pack 1.0 SR1。Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持。使用该类库提供的类,.NET 开发人员可以更方便的创建支持多文化多语言的软件应用。下载地址是:http://www.microsoft.com/downloads/details.aspx?FamilyID=44cac7f0-633b-477d-aed2-99aee642fc10&DisplayLang=zh-cn 该软件包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>
///依次获取汉字笔画, 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;
}
}
}
效果如下:
封装了简体中文的读音和笔画等基本信息。
其他信息请参与随机安装的chm帮助文件。
http://hi.baidu.com/jiang_yy_jiang/blog/item/3a94321994308676dab4bd9f.html
- 汉字转化工具
- 汉字转化成拼音工具类介绍
- java 汉字转化为拼音工具类(未测试)
- java 汉字转化为拼音工具类
- 汉字转化为拼音
- 日期转化汉字最短版
- 汉字转化为拼音
- 汉字转化为拼音
- 汉字转化拼音
- 汉字拼音转化
- 汉字转化成ACSII
- 汉字转化为unicode
- 汉字转化拼音
- 汉字转化为拼音
- Unicode转化为汉字
- Unicode和汉字转化
- 汉字首字母转化
- Unicode转化为汉字
- u-boot文档之 README摘要
- Android Service 的使用(二)----Service的绑定使用
- 最新最全的ASP.NET学习资源大全
- Windows驱动学习计划
- Hadoop环境搭建——集群篇
- 汉字转化工具
- Hadoop 实践入门
- input file 上传文件
- 用 Hadoop 进行分布式并行编程, 第 3 部分
- Objective-C 静态库调用解析
- 设计模式六大原则:依赖倒置原则
- 黑马程序员--进制的转换程序收藏
- 用 Hadoop 进行分布式并行编程, 第 1 部分
- 用 Hadoop 进行分布式并行编程, 第 2 部分