中文内码转换代码

转载 2007年09月20日 22:42:00
输入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;
    }  

常见的三种中文内码转换

//大五码->GBKfunction BIG52GBK(Value: string): string;var  iLength, iReturn: Integer;  sTmp: PWideChar;...
  • jlutt
  • jlutt
  • 2006年02月21日 09:19
  • 593

C++常见的三种中文内码转换代码

常见的中文内码一般有GB2312(简体中文),GBK和台湾那边用的BIG5(繁体中文),有时候看一些台湾编程论坛里的资料,都是乱码,如果在IE中浏览,则要求安装繁体字库的支持。网上也有很多中文内码的转...
  • may680
  • may680
  • 2010年08月17日 15:05
  • 543

常见的三种中文内码转换代码

作者:ccrun    更新:2005-10-13    浏览:11660常见的中文内码一般有GB2312(简体中文),GBK和台湾那边用的BIG5(繁体中文),有时候看一些台湾编程论坛里的资料,都是...
  • qq752923276
  • qq752923276
  • 2011年03月03日 16:56
  • 696

中文内码转换简易算法

中文内码转换类??? 中文分为简体、繁体两种内码,另外还有统一码,如果要在不同码之间转换,需要有一个对应表格,程序编写起来非常繁琐,而且更要有内码对照表格。笔者,在阅读MSDN中发现只要妙用Multi...
  • wang_changluo
  • wang_changluo
  • 2004年08月11日 19:03
  • 705

常见的三种中文内码转换代码

关键字:中文内码,GB2312,GBK,BIG5,简体中文,繁体中文,MultiByteToWideChar,WideCharToMultiByte,ccrun 常见的中文内码一般有GB2312(简体...
  • liubin15989534919
  • liubin15989534919
  • 2010年08月13日 18:27
  • 250

中文内码转换简易算法

 中文内码转换类??? 中文分为简体、繁体两种内码,另外还有统一码,如果要在不同码之间转换,需要有一个对应表格,程序编写起来非常繁琐,而且更要有内码对照表格。笔者,在阅读MSDN中发现只要妙用Mult...
  • qiuxiangyong
  • qiuxiangyong
  • 2004年08月20日 16:05
  • 994

内码转换

http://207.44.226.183/index.php?fromuid=296842 所有会员注意...
  • benny5609
  • benny5609
  • 2008年01月14日 15:36
  • 703

汉字区位码换算

关于汉字区位码的介绍大家可以参考百度百科,具体换算方法如下: 一个汉字占用两个字节,例如:在unicode下,“汉字”这两个字占用的四个字节值分别为-70,-70,-41,-42那么汉字的“汉”字的区...
  • nwpugyg
  • nwpugyg
  • 2010年01月04日 12:05
  • 597

C语言实现常见的中文内码转换

常见的中文内码一般有GB2312(简体中文),GBK和台湾那边用的BIG5(繁体中文),有时候看一些台湾编程论坛里的资料,都是乱码,如果在IE中浏览,则要求安装繁体字库的支持。网上也有很多中文内码的转...
  • sti01
  • sti01
  • 2005年11月08日 23:45
  • 948

iconv内码转换

http://blog.csdn.net/wzb56/article/details/6949518
  • jiangnan0001
  • jiangnan0001
  • 2012年02月15日 18:02
  • 218
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:中文内码转换代码
举报原因:
原因补充:

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