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实现简繁转换相关推荐

  1. C#调用VB进行简繁转换

    首先在C#项目中引用Microsoft.VisualBasic.dll,版本自己选择合适的 然后在项目中添加引用:using Microsoft.VisualBasic; 转换: 转为繁体: outp ...

  2. APISpace 中文简繁转换API

    APISpace 的 中文简繁转换API,输入想要转换简繁体的中文汉字,然即可将正体繁体字.中文简体字或QQ非主流繁体字转换翻译汉字繁简体. APISpace 上面还有很多各种各样的API,并且所有A ...

  3. java utf8 简繁转换 类库_在Java中进行中文繁体简体转换,基于OpenCC(Open Chinese Convert)方案...

    一.OpenCC介绍 OpenCC (Open Chinese Convert,开放中文转换) 是一个用于中文简繁转换的开源项目,支持词汇级别的转换.异体字转换和地区习惯用词转换(中国大陆.台湾.香港 ...

  4. js搞定网页的简繁转换

    对网页进行简繁字体转换的方法一般有两种:一是使用<简繁通>这样的专业软件,另外一种是制作两套版本的网页.显然,这两种方法都较为麻烦,而且专业软件一般不能用于免费的空间.笔者在这里给大家提供 ...

  5. Python 轻量化简繁转换

    最近项目中用到了简单的简繁转换,如果用OpenCC太重了,于是搜到了 zhconv 这个库. zhconv 提供基于 MediaWiki 词汇表的最大正向匹配简繁转换,Python 2, 3 通用. ...

  6. opencc在linux环境中,android-opencc,中文简繁转换项目OpenCC的安卓版

    android-opencc,中文简繁转换项目OpenCC的安卓版 发布时间:2016-05-12 11:59:43来源:红联作者:baihuo android-opencc基于OpenCC的源代码, ...

  7. Elasticsearch高级搜索排序( 中文+拼音+首字母+简繁转换+特殊符号过滤)(示例代码)

    简介  这篇文章主要介绍了Elasticsearch高级搜索排序( 中文+拼音+首字母+简繁转换+特殊符号过滤)(示例代码)以及相关的经验技巧,文章约21106字,浏览量320,点赞数5,值得参考! ...

  8. CVCode简繁转换的扩展:GBK与Big5转换

    CVCode使用码表对照的方式实现简繁转换,在Unicode盛行的今天仍然是有其现实意义的.   较常见的应用是,企业内有台籍员工,也有大陆员工,而且简体和繁体的OS都有使用,这样在MIS系统中如何保 ...

  9. NLP之TEA:基于SnowNLP实现自然语言处理之对输入文本进行情感分析(分词→词性标注→拼音简繁转换→情感分析→测试)

    NLP之TEA:基于SnowNLP实现自然语言处理之对输入文本进行情感分析(分词→词性标注→拼音&简繁转换→情感分析→测试) 目录 NLP分词 NLP词性标注 NLP情感分析-TEA NLP常 ...

最新文章

  1. C#进行MapX二次开发之鹰眼实现
  2. 毕业论文选题三步搞定!
  3. android 闪退解决方案,Android apk无法安装及闪退问题解决办法
  4. python棋盘格_干货必看 | Python的turtle库之经典棋盘格
  5. python 傅里叶_基于python的图像傅里叶处理
  6. 泰山行宫碧霞元君祠_临清市泰山行宫碧霞元君祠5月4号(农历三月三十日)举行大型泰山奶奶接驾法会...
  7. C语言预处理#line、#error
  8. android设置自动开关机,Android开发之设置开机自动启动的几种方法
  9. 让VS2008对JQuery语法的智能感知更完美一点(转载)
  10. 《学习笔记》使用AngularJS模板来创建视图
  11. 【前端】跨域 问题 原理 + 解决方案 下
  12. mac 截图工具只能截取桌面问题
  13. 前端“智能”静态资源管理 - Onebox - 博客园
  14. JAVA服务器端发送邮件问题:Could not connect to SMTP host: smtp.qq.com, port: 465
  15. Java 根据时间戳计算星座
  16. 调用dll中的服务 提取不到数据_双枪团伙新动向,借云服务管理数十万僵尸网络...
  17. 原生JS简单的无缝自动轮播
  18. S3C2440 温度传感器ds18b20的焊接测试
  19. 如何在2020年任意设备上刷入Nethunter
  20. 风光互补发电实训系统,QY-GF05

热门文章

  1. MySQL核心技术-178讲-佟刚-专题视频课程
  2. 我的团长我的团第二十二集
  3. 盘点2020 | Cocos 技术与实例教程集锦
  4. 小孩子才做选择,成年人都要,linux各发行版畅玩,建议收藏!
  5. C#限速下载网络文件
  6. 从美团外卖的数据仓库建设中,我学到了什么?
  7. 读书笔记20170919
  8. 基于G-MRF纹理信息的FMC侧扫声纳图像分割算法
  9. Win10 下注册表编辑器添加 mmc
  10. 华东政法大学教学管理系统_华东政法大学教学管理信息系统登录入口、成绩查询网上选课查分...