用 API 作简繁体转换

原创 2004年04月15日 16:05:00

時間: 2004/3/25
作者: Robert
參考: MSDN
電郵: zsc771120@yahoo.com.cn
關鍵字: 简繁体 API 内码 BIG5 GB2312 MultiByteToWideChar WideCharToMultiByte
目的: 幫助受 內碼轉換 困擾的朋友

1. 输入Big5字符,返回Gb简体字符

    //---------------------------------------------------------------------------
    //函数输入Big5字符,返回Gb简体字符
    //---------------------------------------------------------------------------
    AnsiString __fastcall Big2Gb(AnsiString sBig)
    {
     char* pszBig5=NULL; //Big5编码的字符
     wchar_t* wszUnicode=NULL; //Unicode编码的字符
     char* pszGbt=NULL; //Gb编码的繁体字符
     char* pszGbs=NULL; //Gb编码的简体字符
     AnsiString sGb; //返回的字符串
     int iLen=0; //需要转换的字符数
    
     pszBig5=sBig.c_str(); //读入需要转换的字符参数
    
     //计算转换的字符数
     iLen=MultiByteToWideChar (950, 0, pszBig5, -1, NULL,0) ;
     //给wszUnicode分配内存
     wszUnicode=new wchar_t[iLen+1];
     //转换Big5码到Unicode码,使用了API函数MultiByteToWideChar
     MultiByteToWideChar (950, 0, pszBig5, -1, wszUnicode,iLen);
    
     //计算转换的字符数
     iLen=WideCharToMultiByte (936, 0, (PWSTR) wszUnicode, -1, NULL,0, NULL, NULL) ;
     //给pszGbt分配内存
     pszGbt=new char[iLen+1];
     //给pszGbs分配内存
     pszGbs=new char[iLen+1];
     //转换Unicode码到Gb码繁体,使用API函数WideCharToMultiByte
     WideCharToMultiByte (936, 0, (PWSTR) wszUnicode, -1, pszGbt,iLen, NULL, NULL) ;
    
     //转换Gb码繁体到Gb码简体,使用API函数LCMapString
     LCMapString(0x0804,LCMAP_SIMPLIFIED_CHINESE, pszGbt, -1, pszGbs, iLen);
    
     //返回Gb码简体字符
     sGb=pszGbs;
    
     //释放内存
     delete [] wszUnicode;
     delete [] pszGbt;
     delete [] pszGbs;
    
     return sGb;
    }

2. 输入Gb字符,返回Big5字符

    //---------------------------------------------------------------------------
    //函数输入Gb字符,返回Big5字符
    //---------------------------------------------------------------------------
    AnsiString __fastcall Gb2Big(AnsiString sGb)
    {
     char* pszGbt=NULL; //Gb编码的繁体字符
     char* pszGbs=NULL; //Gb编码的简体字符
     wchar_t* wszUnicode=NULL; //Unicode编码的字符
     char* pszBig5=NULL; //Big5编码的字符
     AnsiString sBig5; //返回的字符串
     int iLen=0; //需要转换的字符数
    
     pszGbs=sGb.c_str(); //读入需要转换的字符参数
    
     //计算转换的字符数
     iLen=MultiByteToWideChar (936, 0, pszGbs, -1, NULL,0) ;
    
     //给pszGbt分配内存
     pszGbt=new char[iLen*2+1];
     //转换Gb码简体到Gb码繁体,使用API函数LCMapString
     LCMapString(0x0804,LCMAP_TRADITIONAL_CHINESE, pszGbs, -1, pszGbt, iLen*2);
    
     //给wszUnicode分配内存
     wszUnicode=new wchar_t[iLen+1];
     //转换Gb码到Unicode码,使用了API函数MultiByteToWideChar
     MultiByteToWideChar (936, 0, pszGbt, -1, wszUnicode,iLen);
    
     //计算转换的字符数
     iLen=WideCharToMultiByte (950, 0, (PWSTR) wszUnicode, -1, NULL,0, NULL, NULL) ;
     //给pszBig5分配内存
     pszBig5=new char[iLen+1];
     //转换Unicode码到Big5码,使用API函数WideCharToMultiByte
     WideCharToMultiByte (950, 0, (PWSTR) wszUnicode, -1, pszBig5,iLen, NULL, NULL) ;
    
     //返回Big5码字符
     sBig5=pszBig5;
    
     //释放内存
     delete [] wszUnicode;
     delete [] pszGbt;
     delete [] pszBig5;
    
     return sBig5;
    }

原生JS实现中文简繁切换

原生JS实现中文简繁切换: 原生JS实现中文简繁切换 - 站长素材 * { margin: 0; padding: 0; list-style: none; border: 0;...
  • boyit0
  • boyit0
  • 2016年11月03日 11:08
  • 1241

Linux下在程序中如何进行繁体中文和简体中文的转换

Linux下在程序中如何进行繁体中文和简体中文的转换 欢迎转载,转载请注明作者RunningOn 20111019     首先发个牢骚吧,简繁转换的问题让我在网上搜了好久都没有好的答案,得...
  • darennet
  • darennet
  • 2013年06月02日 23:19
  • 1619

Python 繁体中文与简体中文相互转换

工作中需要将繁体中文转换成简体中文 上网找了些资料,发现这个包最方便安装方法不需要什么安装方法,只需要把这两个文件下载下来,保存到与代码同一目录下即可 https://raw.githubuse...
  • wds2006sdo
  • wds2006sdo
  • 2016年12月12日 15:31
  • 6503

VC++用 API 作简繁体转换

VC++编程技术连载--- VC++用 API 作简繁体转换 1. 输入Big5字符,返回Gb简体字符 //---------------------------- //函数输入Big5字符...
  • KunMing_IT
  • KunMing_IT
  • 2012年04月13日 10:57
  • 201

用API 作简繁体转换

用API 作简繁体转换 1. 输入Big5字符,返回Gb简体字符 //------------------------------------------------------------...
  • liubin15989534919
  • liubin15989534919
  • 2011年09月30日 10:31
  • 245

(转)用 API 作简繁体转换(Big5 GB)

1. 输入Big5字符,返回Gb简体字符   //----------------------------   //函数输入Big5字符,返回Gb简体字符   //------------------...
  • gxj1680
  • gxj1680
  • 2011年04月29日 10:06
  • 764

C#使用Strings.StrConv进行简繁体转换

C#中StrConv的使用学习日记   熟悉VB的人都了解StrConv的功能,它可以实现字符的转化,如可以转化为半角或者全角、在VB.net中更是增加简繁体互相转换。  C#本身没提供这个函数...
  • hanfon
  • hanfon
  • 2012年01月15日 19:19
  • 2024

我的Android进阶之旅------>Android中如何高效率的进行简繁体转换

因为APP要做国际化适配,所以就需要顾及到香港和台湾都是使用繁体字,怎样快速便捷高效的把简体字转换成繁体字呢? 说实话我之前用的方法比较呆板,把每个需要转换的字符串进行在线翻译。今天突然发现word...
  • qq446282412
  • qq446282412
  • 2015年10月10日 19:18
  • 1255

汉字拼音首字母 简繁体等转换

昨天经过网友提醒,提取汉字拼音的方法可以使用微软的一个类库 Visual Studio International Pack ,今天试了一试,确实好用!下面分享下使用方法: 首先下载Visual S...
  • airingyuan
  • airingyuan
  • 2014年03月14日 15:09
  • 1356

Delphi汉字简繁体转换代码

//delphi 7 Delphi汉字简繁体转换代码unit ChineseCharactersConvert; interface uses   Classes, Windows; type   T...
  • ttpage
  • ttpage
  • 2013年06月24日 13:55
  • 1189
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用 API 作简繁体转换
举报原因:
原因补充:

(最多只允许输入30个字)