Big5和Gb编码转换
用 API 作简繁体转换
程序员之家 作者:不祥 日期:2004-4-1 9:55:00
--------------------------------------------------------------------------------
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;
}
Big5和Gb编码转换相关推荐
- BIG5到GB的转换技术
中文因为数量太多,所以与英文用ASCII码一个字节表示不同,它使用两个字节来 表示.通过计算这两个字节,我们可以得到其表示的汉字在中 文字库中的位置.读取该位置的若干字节,以获得表示这个汉字的 ...
- vc中GB2312,BIG5,Unicode编码转换
本文主要讨论的是VC编译环境下,实现字符串和文件编码方式转换的实现,linux下请使用Strconv. 一.文件编码格式转换 //GB2312 编码文件转换成 Unicode: if((file_ha ...
- gb编码转换utf8
查看文件编码信息 file file.txt 换行符CR转换为LF dos2unix file.txt 使用vim转换编码 vim vehicle_record_enp_20220401.txt -c ...
- html utf8转换工具,GB/BIG5/UTF-8 文件编码批量转换工具
GB/BIG5/UTF-8 文件编码批量转换工具是一款单一文件与批量转换编码工具将 GB.BIG5.UTF-8 文件相互转换,方便的批量处理能力,主要用于网站文件编码方式的整体转换上. 某天, ...
- php文件在线编码转换,gbk编码在线转换_php汉字转码 GBK到Big5编码转换
摘要 腾兴网为您分享:php汉字转码 GBK到Big5编码转换,月星家居,永辉生活,一点开,幸福钱庄等软件知识,以及酷我音乐车机,爱情电影网影音,杜比音效,微信制作宣传广告,dolbyadvanced ...
- delphi 编码转换 unicode gbk big5
http://parad1se.bokee.com/6250501.html delphi 编码转换 unicode gbk big5 以下代码在DELPHI 7上调试通过,主要使用了api函数中Mu ...
- GB编码与UTF8编码的转换【转载】
在主函数app后加上这句: QTextCodec::setCodecForLocale(QTextCodec::codecForName("GB18030")); 然后是从UTF8 ...
- python编码规范总结、python编码转换
python编码规范总结.python编码转换 所有的 Python 脚本文件都应在文件头标上 #-*- coding:utf8 -*- .设置编辑器,默认保存为 utf8 格式. 编码 Python ...
- Linux终端语系设置,iconv语系编码转换命令
一.介绍 有时候在命令行输入命令后会显示乱码,其实是语系的不一样导致的:比如说在英语语序下不会显示中文 打印中文语系的日期 将中文语系改为英语语系 提示:设置语系只在本次命令行操作中生效,退出命令行后 ...
- python 编码转换 专题
主要介绍了python的编码机制,unicode, utf-8, utf-16, GBK, GB2312,ISO-8859-1 等编码之间的转换. 常见的编码转换分为以下几种情况: 自动识别 字符串编 ...
最新文章
- 百家中华老字号故宫过大年
- 鸟哥的Linux私房菜(基础篇)-第五章、首次登陆与在线求助 man page
- python自动上传图片_使用Python实现一个简单的图片上传存储服务
- java基础--网络编程
- LeetCode OJ 160. Intersection of Two Linked Lists
- 二叉树垂直遍历 java_【004】二叉树垂直遍历
- C++:类访问修饰符
- BigPipe 大的页面分割成一个一个管道
- 三星性能测试软件,三星R25的性能测试
- Java基础小常识-final,抽象类,接口-(11)
- 【安全资讯】热门Windows激活软件KMSPico被植入恶意程序
- 【EDA】8 路彩灯控制器设计与实现
- 菜鸟教程的Linux命令大全
- 正则html标签sublime,sublimetext 使用正则表达式匹配中文
- Swift游戏实战-跑酷熊猫 02 创建熊猫类
- DLL load failed: %1 不是有效的 Win32 应用程序的解决办法
- 猜词游戏(类似于Hang子手)
- 大数据与人工智能论文
- EXCEL 删除表格内的空格和空白字符
- YUI中一些方法总结