C#:调用API实现简繁转换
C#:调用API实现简繁转换
知识要点:
1、LCMapString函数的功能与使用,具体查阅MSDN。
2、C#中如何调用API函数。C#2005中使用DllImport关键字,以及引用System.Runtime.InteropServices名字空间;之前版本使用sysimport关键字。
代码说明:
1、适合C# 2005,若为之前版本,请将
[DllImport("kernel32.dll", EntryPoint = "LCMapStringA")]
改为
[sysimport(dll = "kernel32.dll", name = "LCMapStringA")]
2、控件:TextBox:textBox1;
Button:button1;
Button:button2;
Button:button3;
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.InteropServices;
//System.IO与System.Runtime.InteropServices手工加上
namespace WindowsApplication1
{
public partial class Form1 :Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender,EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter= "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
dlg.DefaultExt=".txt";
if(dlg.ShowDialog() == DialogResult.OK)
{
StreamReader objReader = newStreamReader(dlg.FileName);
textBox1.Text =objReader.ReadToEnd();
objReader.Close();
}
}
const int LCMAP_SIMPLIFIED_CHINESE =0x02000000;
const int LCMAP_TRADITIONAL_CHINESE =0x04000000;
enum ConvertType
{
Simplified,
Traditional
}
private Encoding gb2312 =Encoding.GetEncoding(936);
private void SCTCConvert(ConvertType c)
{
byte[]source = gb2312.GetBytes(textBox1.Text);
byte[]dest = new byte[source.Length];
switch(c)
{
caseConvertType.Simplified:
{
LCMapString(0x0804, LCMAP_SIMPLIFIED_CHINESE, source, -1, dest,source.Length);
break;
}
caseConvertType.Traditional:
{
LCMapString(0x0804, LCMAP_TRADITIONAL_CHINESE, source, -1, dest,source.Length);
break;
}
}
textBox1.Text = gb2312.GetString(dest);
}
private void button2_Click(object sender,EventArgs e)
{
SCTCConvert(ConvertType.Simplified);
}
private void button3_Click(object sender,EventArgs e)
{
SCTCConvert(ConvertType.Traditional);
}
[DllImport("kernel32.dll", EntryPoint ="LCMapStringA")]
public static extern int LCMapString(int Locale,int dwMapFlags, byte[] lpSrcStr, int cchSrc, byte[] lpDestStr, intcchDest);
}
}
C#:调用API实现简繁转换相关推荐
- C#调用VB进行简繁转换
首先在C#项目中引用Microsoft.VisualBasic.dll,版本自己选择合适的 然后在项目中添加引用:using Microsoft.VisualBasic; 转换: 转为繁体: outp ...
- APISpace 中文简繁转换API
APISpace 的 中文简繁转换API,输入想要转换简繁体的中文汉字,然即可将正体繁体字.中文简体字或QQ非主流繁体字转换翻译汉字繁简体. APISpace 上面还有很多各种各样的API,并且所有A ...
- java utf8 简繁转换 类库_在Java中进行中文繁体简体转换,基于OpenCC(Open Chinese Convert)方案...
一.OpenCC介绍 OpenCC (Open Chinese Convert,开放中文转换) 是一个用于中文简繁转换的开源项目,支持词汇级别的转换.异体字转换和地区习惯用词转换(中国大陆.台湾.香港 ...
- js搞定网页的简繁转换
对网页进行简繁字体转换的方法一般有两种:一是使用<简繁通>这样的专业软件,另外一种是制作两套版本的网页.显然,这两种方法都较为麻烦,而且专业软件一般不能用于免费的空间.笔者在这里给大家提供 ...
- Python 轻量化简繁转换
最近项目中用到了简单的简繁转换,如果用OpenCC太重了,于是搜到了 zhconv 这个库. zhconv 提供基于 MediaWiki 词汇表的最大正向匹配简繁转换,Python 2, 3 通用. ...
- opencc在linux环境中,android-opencc,中文简繁转换项目OpenCC的安卓版
android-opencc,中文简繁转换项目OpenCC的安卓版 发布时间:2016-05-12 11:59:43来源:红联作者:baihuo android-opencc基于OpenCC的源代码, ...
- Elasticsearch高级搜索排序( 中文+拼音+首字母+简繁转换+特殊符号过滤)(示例代码)
简介 这篇文章主要介绍了Elasticsearch高级搜索排序( 中文+拼音+首字母+简繁转换+特殊符号过滤)(示例代码)以及相关的经验技巧,文章约21106字,浏览量320,点赞数5,值得参考! ...
- CVCode简繁转换的扩展:GBK与Big5转换
CVCode使用码表对照的方式实现简繁转换,在Unicode盛行的今天仍然是有其现实意义的. 较常见的应用是,企业内有台籍员工,也有大陆员工,而且简体和繁体的OS都有使用,这样在MIS系统中如何保 ...
- NLP之TEA:基于SnowNLP实现自然语言处理之对输入文本进行情感分析(分词→词性标注→拼音简繁转换→情感分析→测试)
NLP之TEA:基于SnowNLP实现自然语言处理之对输入文本进行情感分析(分词→词性标注→拼音&简繁转换→情感分析→测试) 目录 NLP分词 NLP词性标注 NLP情感分析-TEA NLP常 ...
最新文章
- C#进行MapX二次开发之鹰眼实现
- 毕业论文选题三步搞定!
- android 闪退解决方案,Android apk无法安装及闪退问题解决办法
- python棋盘格_干货必看 | Python的turtle库之经典棋盘格
- python 傅里叶_基于python的图像傅里叶处理
- 泰山行宫碧霞元君祠_临清市泰山行宫碧霞元君祠5月4号(农历三月三十日)举行大型泰山奶奶接驾法会...
- C语言预处理#line、#error
- android设置自动开关机,Android开发之设置开机自动启动的几种方法
- 让VS2008对JQuery语法的智能感知更完美一点(转载)
- 《学习笔记》使用AngularJS模板来创建视图
- 【前端】跨域 问题 原理 + 解决方案 下
- mac 截图工具只能截取桌面问题
- 前端“智能”静态资源管理 - Onebox - 博客园
- JAVA服务器端发送邮件问题:Could not connect to SMTP host: smtp.qq.com, port: 465
- Java 根据时间戳计算星座
- 调用dll中的服务 提取不到数据_双枪团伙新动向,借云服务管理数十万僵尸网络...
- 原生JS简单的无缝自动轮播
- S3C2440 温度传感器ds18b20的焊接测试
- 如何在2020年任意设备上刷入Nethunter
- 风光互补发电实训系统,QY-GF05