没错,就是繁简体中文内码互转.
能否给我能测试的源代码? 谢谢!!
能否给我能测试的源代码? 谢谢!!
解决方案 »
- 关于NTDLL.DLL出错的奇怪问题
- 送分送分题
- 怎么用Delphi实现跨服务器转移数据?
- 高分急救!大峡 帮忙把VB代码转成delphi代码!
- 各位老兄,能不能给俺介绍一个打包程序能把Delphi的第三方控件也打包进去以及在哪个网站下载到这种打包程序。各位老兄,能不能给俺介绍一
- 一个问题,关于数据表的,请教大家,拉兄弟一把吧
- 如何得到收藏夹中文件的URL
- 在输入框中刷卡,记录刷卡时间,但是当来回刷卡时,会在刷卡时间字段记录中出现相同时间。例如来回刷卡,出现两条一模一样的记录:卡号“111”,刷卡时间“2002-01-01 09:00:00”请问如何避免,使记录只写一条
- 请教关于Node.Edit问题。谢谢
- 请教一个关于窗口中数据过滤的问题
- 关于word模板的问题
- 怎样让菜单的快捷键可以设为数字?急
function Big2Gb(sBig:String ):String;
var
pszBig5:pchar;
wszUnicode:pwidechar;
pszGbt:pchar;
pszGbs:pchar;
sGb:string;
iLen:integer;
begin
pszBig5:=nil; //Big5编码的字符
wszUnicode:=nil; //Unicode编码的字符
pszGbt:=nil; //Gb编码的繁体字符
pszGbs:=nil; //Gb编码的简体字符
iLen:=0; //需要转换的字符数
sGb:=''; pszBig5:=pchar(sBig); //读入需要转换的字符参数 //计算转换的字符数
iLen:=MultiByteToWideChar (950, 0, pszBig5, -1, nil,0) ;
//给wszUnicode分配内存
getmem(wszUnicode,iLen*(sizeof(wchar)+1));
//转换Big5码到Unicode码,使用了API函数MultiByteToWideChar
MultiByteToWideChar (950, 0, pszBig5, -1, wszUnicode,iLen); //计算转换的字符数
iLen:=WideCharToMultiByte (936, 0, wszUnicode, -1, nil,0, nil, nil) ;
//给pszGbt分配内存
getmem(pszGbt,iLen+1);
//给pszGbs分配内存
getmem(pszGbs,iLen+1);
//转换Unicode码到Gb码繁体,使用API函数WideCharToMultiByte
WideCharToMultiByte (936, 0, wszUnicode, -1, pszGbt,iLen,nil, nil) ;//转换Gb码繁体到Gb码简体,使用API函数LCMapString
LCMapString($0804,LCMAP_SIMPLIFIED_CHINESE, pszGbt, -1, pszGbs, iLen); //返回Gb码简体字符
sGb:=pszGbs; //释放内存
freemem(wszUnicode);
freemem(pszGbt);
freemem(pszGbs); result:= sGb;
end;function Gb2Big(sGb:String):String;
var
pszGbt:pchar;
pszGbs:pchar;
wszUnicode:pwchar;
pszBig5:pchar;
sBig5:string;
iLen:integer;
begin
pszGbt:=nil; //Gb编码的繁体字符
pszGbs:=nil; //Gb编码的简体字符
wszUnicode:=nil; //Unicode编码的字符
pszBig5:=nil; //Big5编码的字符
sBig5:=''; //返回的字符串
iLen:=0; //需要转换的字符数 pszGbs:=pchar(sGb); //读入需要转换的字符参数//计算转换的字符数
iLen:=MultiByteToWideChar (936, 0, pszGbs, -1, nil,0) ; //给pszGbt分配内存
getmem(pszGbt,iLen*2+1);
//转换Gb码简体到Gb码繁体,使用API函数LCMapString
LCMapString($0804,LCMAP_TRADITIONAL_CHINESE, pszGbs, -1, pszGbt, iLen*2); //给wszUnicode分配内存
getmem(wszUnicode,sizeof(wchar)*(iLen+1));
//转换Gb码到Unicode码,使用了API函数MultiByteToWideChar
MultiByteToWideChar (936, 0, pszGbt, -1, wszUnicode,iLen); //计算转换的字符数
iLen:=WideCharToMultiByte (950, 0, wszUnicode, -1, nil,0, nil, nil) ;
//给pszBig5分配内存
getmem(pszBig5,iLen+1);
//转换Unicode码到Big5码,使用API函数WideCharToMultiByte
WideCharToMultiByte (950, 0, wszUnicode, -1, pszBig5,iLen, nil, nil) ; //返回Big5码字符
sBig5:=pszBig5; //释放内存
Freemem(wszUnicode);
Freemem(pszGbt);
Freemem(pszBig5); result:= sBig5;
end;